[an error occurred while processing this directive]
External INT @ 5503 TROUBLE
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено BrainJTAG 15 декабря 2004 г. 14:48

Как работать с внешними прерываниями(INT0,INT1...)? DSP/BIOS не использую, пользуюсь CSL.
Вот пример кода

IRQ_globalDisable();

IRQ_clear(IRQ_EVT_INT0);
IRQ_plug(IRQ_EVT_INT0,&Func0);
IRQ_enable(IRQ_EVT_TINT0);

IRQ_clear(IRQ_EVT_INT1);
IRQ_plug(IRQ_EVT_INT1,&Func1);
IRQ_enable(IRQ_EVT_TINT1);

IRQ_globalEnable();

Причем перед всем этим делаю IRQ_setVecs((Uint32)(&VECSTART));
как в примере от таймера ! (C:\cslc5500\examples\generic5509\csl\timer\)

Трасировал, смотрел регистр IER1 - нифига там не устанавливается и не меняется... в чем фишка ???

Примерно тоже делал для таймера - работает !!! Вот для таймера

void My_Timer1_Init(){
TIMER_Config TCfg;
IRQ_globalDisable();
HTimer1 = TIMER_open(TIMER_DEV1,TIMER_OPEN_RESET);
Timer1event = TIMER_getEventId(HTimer1);
IRQ_clear(Timer1event);
IRQ_plug(Timer1event,&Timer1Isr);
TIMER_stop(HTimer1);
TIMER_getConfig(HTimer1,&TCfg);
TCfg.tcr |= 0x800|0x0400 | 0x0020 | 0x08;
TCfg.tcr &= ~0x1004;
TIMER_config(HTimer1,&TCfg);
TCfg.prsc = 0x00FF;
TCfg.prd = 0xFFFF;
TIMER_config(HTimer1,&TCfg);
TCfg.tcr &= ~0x0400; //TLB;
TIMER_config(HTimer1,&TCfg);
// Enable Timer interrupt
IRQ_enable(Timer1event);
// Enable all maskable interrupts
IRQ_globalEnable();
} // My_TIMER1_Init();


Что не так ? Кто делал похожее ?

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru