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

 
 
> LDLE mode в обработчике прерывания, AT91SAM7S64
MiklPolikov
сообщение Aug 3 2008, 14:32
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Хочу в прерывании от PIT запускать ADC и переводить процессор в idle mode для уменьшения шума,
а возвращатся из IDLE mode он будет по прерыванию от ADC.
И не работает- процессор так и остаётся в IDLE.
А если всё то же самое делать не в прерывании от таймера- работает .

Почему так ? В обработчике прерывания нельзя переходить в IDLE mode ?

Спасибо !


__irq void PIT_interrupt(void) //прерывание от PIT
{

x=*AT91C_PITC_PIVR; //сбрасываем флаг прерывания
*AT91C_ADC_CR|=AT91C_ADC_START; //запускаем ADC
AT91C_BASE_PMC->PMC_SCDR|=(1<<0); // idle mode
*AT91C_AIC_EOICR = 0; // возврат из прерывания
}

__irq void ADC_interrupt(void) // прерывание от ADC
{

x=*AT91C_ADC_LCDR; //сбрасываем флаг прерывания
*AT91C_AIC_EOICR = 0; // возврат из прерывания
}

Сообщение отредактировал MiklPolikov - Aug 3 2008, 14:32


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post



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

 


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


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