23 inline void start(uint8_t mode = VREF_SC_MODE_LV_HIGHPOWERBUF, uint8_t
trim = 0x20) {
24 VREF_TRM = VREF_TRM_CHOPEN | (
trim&0x3F);
26 VREF_SC = VREF_SC_VREFEN | VREF_SC_REGEN | VREF_SC_ICOMPEN | VREF_SC_MODE_LV(mode);
33 atomic::setBitFlag(PMC_REGSC, PMC_REGSC_BGBE);
41 bool chopen = atomic::getBitFlag(VREF_TRM, VREF_TRM_CHOPEN);
42 VREF_TRM = (chopen ? VREF_TRM_CHOPEN : 0) | (trim&0x3F);
48 __attribute__((always_inline)) inline
void stop(){
50 atomic::clearBitFlag(PMC_REGSC, PMC_REGSC_BGBE);
63 __attribute__((always_inline)) inline volatile
bool isStable() {
64 return atomic::getBitFlag(VREF_SC, VREF_SC_VREFST);
71 __attribute__((always_inline)) inline volatile
bool isOn() {
72 return atomic::getBitFlag(VREF_SC, VREF_SC_VREFEN);
void waitUntilStable()
Wait for the internal reference to stabilize.
Definition: VREF.h:80
volatile bool isOn()
Check if the internal reference is on.
Definition: VREF.h:71
void stop()
Stops the internal reference.
Definition: VREF.h:48
void trim(uint8_t trim)
Set the trim.
Definition: VREF.h:40
Controls the Teensy internal voltage reference module (VREFV1)
Definition: VREF.h:9
void start(uint8_t mode=VREF_SC_MODE_LV_HIGHPOWERBUF, uint8_t trim=0x20)
Start the 1.2V internal reference (if present)
Definition: VREF.h:23
volatile bool isStable()
Check if the internal reference has stabilized.
Definition: VREF.h:63