Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
.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();
...
Не проверял, но должно работать.