diff options
author | Clyne Sullivan <clyne@bitgloo.com> | 2020-11-29 19:22:04 -0500 |
---|---|---|
committer | Clyne Sullivan <clyne@bitgloo.com> | 2020-11-29 19:22:04 -0500 |
commit | 2b3bc49928c6bb58e65d0de45175909f4e0eba03 (patch) | |
tree | 29afa395be067fc836894b64a58c74fd8bf5f682 /main.c | |
parent | 764446fb8680d75f93481c039adebda88f0fb960 (diff) |
hsi only for adc; run msi at 512k for 360uA
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 12 |
1 files changed, 10 insertions, 2 deletions
@@ -21,11 +21,13 @@ * - Can read buttons through PAL (through interrupts now) * - Use ADC to read Vintref, print to screen in mV * - Sleep mode via WFI, saves ~0.5mA (we're running around 1.1mA) + * - Run at 512kHz, only use HSI for ADC: 360uA */ static volatile bool adc_is_complete = false; -static void adc_callback(ADCDriver *adcp) +static void adc_callback(ADCDriver *adcd) { + (void)adcd; adc_is_complete = true; } @@ -49,6 +51,9 @@ static int readVddmv() { adcsample_t reading = 0; + RCC->CR |= RCC_CR_HSION; + while (!(RCC->CR & RCC_CR_HSIRDY)); + adcStart(&ADCD1, &adccfg); adcSTM32EnableVREF(&ADCD1); adcStartConversion(&ADCD1, &adcgrpcfg, &reading, 1); @@ -57,6 +62,8 @@ static int readVddmv() adcSTM32DisableVREF(&ADCD1); adcStop(&ADCD1); + RCC->CR &= ~RCC_CR_HSION; + return 3000 * /* CAL */ *((adcsample_t *)0x1FF80078) / reading; } @@ -116,7 +123,8 @@ int main(void) { halInit(); chSysInit(); - RCC->CFGR |= RCC_CFGR_STOPWUCK; + + RCC->CR &= ~RCC_CR_HSION; buttons_init(); |