реклама на сайте
подробности

 
 
 
Closed TopicStart new topic
> Проблемы с прерываниями связки ADC1 и DMA.
Вячик13
сообщение Oct 6 2015, 08:05
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 71
Регистрация: 17-01-12
Пользователь №: 69 604



Имеется IAR 6.50 для ARM. Проект для STM32F103VCT6 с использованием scmRTOS V4.

Работает связка ADC1 и DMA. Все другие прерывания блокированы.

Запуск работы связки происходит в функции main() перед запуском операционной системы:

ADC1_CR2_bit.SWSTART=true; //Старт преобразования АЦП
OS::run();

Тело прерывания DMA (преобразовывается 9 каналов ADC1):

extern "C" void DMA1_Channel1_IRQHandler(void) {
OS::TISRW();
DMA_CCR1_bit.EN=false; //Стоп канала DMA
DMA_IFCR_bit.CTCIF1=true; //Сброс флага прерывания конца приёма первого канала DMA
ADC1_SR_bit.STRT=false; //Сброс флага старта регулярных каналов
ADCChannelArray[0]+=ADCChannel.ADCResult[15]; //Перепись результатов очередного преобразования
ADCChannelArray[1]+=ADCChannel.ADCResult[14];
ADCChannelArray[2]+=ADCChannel.ADCResult[7];
ADCChannelArray[3]+=ADCChannel.ADCResult[6];
ADCChannelArray[4]+=ADCChannel.ADCResult[3];
ADCChannelArray[5]+=ADCChannel.ADCResult[2];
ADCChannelArray[6]+=ADCChannel.ADCResult[1];
ADCChannelArray[7]+=ADCChannel.ADCResult[0];
ADCChannelArray[8]+=ADCChannel.ADCResult[8];*/
DMA_CCR1_bit.EN=true; //Старт канала DMA
ADC1_CR2_bit.SWSTART=true; //Старт преобразования АЦП
DMA1Counter++; //Отладочный счётчик прерываний
}

Проблема в следующем. Ставлю точку остановки для отладчика на вторую строку обработчика прерывания. После каждого запуска происходит чёткая остановка на точке. Убираю точку остановки и пускаю программу, затем через некоторое время останавливаю. Отладочный счётчик показывает два захода в прерывание, а затем, сколько бы я ни запускал и останавливал программу, больше заходов в прерывание не наблюдается.

В чём дело?
Go to the top of the page
 
+Quote Post

Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 08:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01339 секунд с 7
ELECTRONIX ©2004-2016