Перейти к содержанию
    

STM8 ADC1 не поднимает EOC

Здравствуйте.

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 портам никаких действий ненужно (Штриггер отключитать по хорошему, но он не должен вызывать подобное поведение никак).

Скрины регистров.

Спойлер

7k0Z0Td.png

 

 

Изменено пользователем Solonovatiy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Разрыл в интернете ответ. Не заметил в RM.

Для начала конверсии, нужно повторно записать 1 в ADON.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

26 минут назад, jeelman сказал:

это в RM0016->ADC functional description->ADC on/off control

Не отрицал, что оно там есть, проглядел. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...