32 #include <settings_defines.h>
34 #ifdef ADC_USE_INTERNAL_VREF
51 inline void start(uint8_t mode = VREF_SC_MODE_LV_HIGHPOWERBUF, uint8_t
trim = 0x20) {
52 VREF_TRM = VREF_TRM_CHOPEN | (
trim&0x3F);
54 VREF_SC = VREF_SC_VREFEN | VREF_SC_REGEN | VREF_SC_ICOMPEN | VREF_SC_MODE_LV(mode);
61 atomic::setBitFlag(PMC_REGSC, PMC_REGSC_BGBE);
69 bool chopen = atomic::getBitFlag(VREF_TRM, VREF_TRM_CHOPEN);
70 VREF_TRM = (chopen ? VREF_TRM_CHOPEN : 0) | (
trim&0x3F);
76 __attribute__((always_inline))
inline void stop(){
78 atomic::clearBitFlag(PMC_REGSC, PMC_REGSC_BGBE);
91 __attribute__((always_inline))
inline volatile bool isStable() {
92 return atomic::getBitFlag(VREF_SC, VREF_SC_VREFST);
99 __attribute__((always_inline))
inline volatile bool isOn() {
100 return atomic::getBitFlag(VREF_SC, VREF_SC_VREFEN);
117 #endif // ADC_USE_INTERNAL_VREF