Имеется программа, где нагрузка управляется по ШИМ с частотой более 10 кГц. Имеется необходимость следить за током. Есть шунт 0,1 Ом. Есть мнение что подтянув вход АЦП к +3,3 В резистором на сотни кОм мы получим смещение, достаточное чтобы сигнал был в диапазоне воспринимаемом АЦП. Сейчас без тока нагрузки там около 100 мВ. С током который в норме - 120-140 мВ. С током который не в норме - более 200 мВ. Контроллер stm32f100c8t6
Самое главное - хочется применить "оконный компаратор". Вся программа сделана на libopencm3, да и под другие варианты примеров не обнаружено. Кроме такого:
- Код:
ADC1->CR1 |= ADC_CR1_AWDEN // enable on regular channels
| ADC_CR1_AWDSGL // Enable the watchdog on a single channel in scan mode
| ADC_CR1_AWDIE // Analog watchdog interrupt enable
| guarded_channel; // #channel
ADC1->LTR = 1000;
ADC1->HTR = 3902;*/
В библиотеке в свою очередь есть:
void adc_enable_analog_watchdog_on_selected_channel(uint32_t adc, uint8_t channel)
void adc_set_watchdog_low_threshold(uint32_t adc, uint8_t threshold)
void adc_set_watchdog_high_threshold(uint32_t adc, uint8_t threshold)
Может кто подскажет в какой последовательности вызывать, как быть с обработчиком прерывания а ведь ещё калибровку надо делать...
п.с.: можно перенести в "есть работа", потому что как-то совсем нагло самому не решить простой задачи и обращаться к общественности только из-за нехватки времени.