Jump to content

    
Sign in to follow this  
Solonovatiy

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

Recommended Posts

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

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

 

 

Edited by Solonovatiy

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this