Продолжение темы:
обрабатываю совместно прерывание pit и dbgu:
Код
void DBGU_irq_handler(void)
{
unsigned int status;
if((AT91C_BASE_PITC->PITC_PISR & AT91C_PITC_PITS))
{
fPIT_DBGU = 1;
// подтвердить обработку прерывания
status = AT91C_BASE_PITC->PITC_PIVR;
// подавить предупреждение компилятора/оптимизатора
status = status;
}
else
{..........
}
работают отдельно обработки прерываний dbgu и pit. с флагом pit работаю так:
Код
while(!fPIT_DBGU)
{...}
fPIT_DBGU = 0;
....
потребовалось перенести обработку флага pit
в ф-ию обработки вызываемой прерыванием dbgu, сразу перестал формироваться fPIT_DBGU = 1!
Решил проблему так:
обрабатка dbgu, формирую флаг, затем по флагу обрабатываю pit.
Подскажите, пожалуйста, можно ли сделать обработку первым способом?
и если нельзя, почему?