Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Цифровые сигнальные процессоры (DSP) и их применение»

Совет - поменьше пользоваться всякими библиотеками и все делать самому. То же относится и к вопросу по DMA.

Отправлено rst 24 апреля 2007 г. 13:33
В ответ на: "Отлов" внешних прерываний отправлено dsailor 24 апреля 2007 г. 12:57

Файл vectors.asm:
-----
.ref _c_int00, _ISRint0;
.ref _trap
.def _VECSTART

.asg ISRtrap, ISRnmi
.asg ISRtrap, ISRint0
.asg ISRtrap, ISRint2
.asg ISRtrap, ISRtint0
.asg ISRtrap, ISRrint0
.asg ISRtrap, ISRrint1
.asg ISRtrap, ISRxint1
.asg ISRtrap, ISRlckint
.asg ISRtrap, ISRdmac1
.asg ISRtrap, ISRdspint
.asg ISRtrap, ISRint3
.asg ISRtrap, ISRuart
.asg ISRtrap, ISRxint2
.asg ISRtrap, ISRdmac4
.asg ISRtrap, ISRdmac5
.asg ISRtrap, ISRint1
.asg ISRtrap, ISRxint0
.asg ISRtrap, ISRdmac0
.asg ISRtrap, ISRsint19
.asg ISRtrap, ISRdmac2
.asg ISRtrap, ISRdmac3
.asg ISRtrap, ISRtint1
.asg ISRtrap, ISRi2c
.asg ISRtrap, ISRberr
.asg ISRtrap, ISRdlog
.asg ISRtrap, ISRrtos
.asg ISRtrap, ISRsint27
.asg ISRtrap, ISRsint28
.asg ISRtrap, ISRsint29
.asg ISRtrap, ISRsint30
.asg ISRtrap, ISRsint31

.asg _ISRint0, ISRint0

.sect ".vectors"
.align 256
_VECSTART:.ivec _c_int00, c54x_stk ;00 RESET
.ivec ISRnmi ;01 NMI
.ivec ISRint0 ;02 INT0
.ivec ISRint2 ;03 INT2
.ivec ISRtint0 ;04 TINT0
.ivec ISRrint0 ;05 RINT0
.ivec ISRrint1 ;06 RINT1
.ivec ISRxint1 ;07 XINT1
.ivec ISRlckint ;08 LCKINT
.ivec ISRdmac1 ;09 DMAC1
.ivec ISRdspint ;0A DSPINT
.ivec ISRint3 ;0B INT3/WDTINT
.ivec ISRuart ;0C RINT2, UART
.ivec ISRxint2 ;0D XINT2
.ivec ISRdmac4 ;0E DMAC4
.ivec ISRdmac5 ;0F DMAC5
.ivec ISRint1 ;10 INT1
.ivec ISRxint0 ;11 XINT0
.ivec ISRdmac0 ;12 DMAC0
.ivec ISRsint19 ;13 SINT19
.ivec ISRdmac2 ;14 DMAC2
.ivec ISRdmac3 ;15 DMAC3
.ivec ISRtint1 ;16 TINT1
.ivec ISRi2c ;17 I2C
.ivec ISRberr ;18 BERR
.ivec ISRdlog ;19 DLOG
.ivec ISRrtos ;1A RTOS
.ivec ISRsint27 ;1B SINT27
.ivec ISRsint28 ;1C SINT28
.ivec ISRsint29 ;1D SINT29
.ivec ISRsint30 ;1E SINT30
.ivec ISRsint31 ;1F SINT31

.text

ISRtrap: MOV #TRAP_MISC, T0
B #_trap
----

В си-модуле объявляешь обработчик прерывания:
interrupt void ISRint0() {
...
}
В main() конфигурируешь INT0 на ввод (если надо) и:
_IER0 = 1 << 2;
_IER1 = 0;
_enable_interrupts();
...
Не проверял, но должно работать.




Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 97:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru