Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
void IRQ_Handler(void) __irq {
long int TEMP;
// в даташите написано что надо почитать AIC_IVR при входе в прерывание
// но когда я вставляю эту строчку
//TEMP = *AT91C_AIC_IVR;
// прерывание срабатывает только один раз после ресета, а потом
// МК не реагирует на кнопку.
*AT91C_AIC_EOICR = 0; //выход из прерывания
}
// ------------main()
void main (void){
// AT91C_AIC_SVR[30] = (unsigned long)IRQ_Handler; //устанвливаем вектор
//
*AT91C_AIC_IECR = 1<<30; //разрешаем IRQ0
*AT91C_AIC_SMR[30] = 0x27; // по фронту с высшим приоритетом (проверьте);
while (1); // бесконечный цикл в ожидании прерывания
}