Solonovatiy 0 3 августа, 2019 Опубликовано 3 августа, 2019 (изменено) · Жалоба Здравствуйте. STM8S003F3 Код инициализации. #define ADC1_CH6 0x06 #define ADC1_PRESC 0x20 //0b0010 0000 (/4) ADC1->CSR = ADC1_CH6 | ADC1_CSR_EOCIE; //CH6 + EOC IRQ enable ADC1->CR1 = ADC1_CR1_CONT; //Continuous mode ADC1->CR1 |= ADC1_PRESC; //ADC presc x4 ADC1->CR1 |= ADC1_CR1_ADON; //Enable ADC INTERRUPT_HANDLER(ADC_ISR, 22){ ADC_result = ADC1->DRH; ADC1->CSR &= ~ADC1_CSR_EOC; } Прерывания разрешены (другие функции работают и прерываются). Тактирование включено (PCKEN1\2 забиты 0xFF при старте). В прерывании стоят брекпоинты, однако программа на них не попадает, т.к. не поднимается EOC флаг. Хотя в ADC_DR появляется значение. Вроде по IO портам никаких действий ненужно (Штриггер отключитать по хорошему, но он не должен вызывать подобное поведение никак). Скрины регистров. Спойлер Изменено 4 августа, 2019 пользователем Solonovatiy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Solonovatiy 0 3 августа, 2019 Опубликовано 3 августа, 2019 · Жалоба Разрыл в интернете ответ. Не заметил в RM. Для начала конверсии, нужно повторно записать 1 в ADON. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jeelman 0 3 августа, 2019 Опубликовано 3 августа, 2019 · Жалоба это в RM0016->ADC functional description->ADC on/off control Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Solonovatiy 0 3 августа, 2019 Опубликовано 3 августа, 2019 · Жалоба 26 минут назад, jeelman сказал: это в RM0016->ADC functional description->ADC on/off control Не отрицал, что оно там есть, проглядел. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться