Jump to content

Sign in to follow this  

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

Recommended Posts



Код инициализации.


	#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


       ADC_result = ADC1->DRH;
       ADC1->CSR &= ~ADC1_CSR_EOC;

Прерывания разрешены (другие функции работают и прерываются). 

Тактирование включено (PCKEN1\2 забиты 0xFF при старте).

В прерывании стоят брекпоинты, однако программа на них не попадает, т.к. не поднимается EOC флаг. Хотя в ADC_DR появляется значение.

Вроде по IO портам никаких действий ненужно (Штриггер отключитать по хорошему, но он не должен вызывать подобное поведение никак).

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





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.

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