📄 vectors.c
字号:
/*------------------------------------------------------------------------
VECTORS.C
- Interrupt level (priority) setting
- Interrupt vector definition
26.07.99 1.00 HLO V30L10 original version, no resource assignment
------------------------------------------------------------------------*/
#include "mb90540.h"
/*------------------------------------------------------------------------
InitIrqLevels()
This function pre-sets a ll interrupt control registers. It can be used
to set all interrupt priorities in static applications. If this file
contains assignments to dedicated resources, verify that the
appropriate controller is used.
NOTE: value 7 disables the interrupt and value 0 sets highest priority.
NOTE: Two resource interrupts always share one ICR register.
*/
void InitIrqLevels(void)
{
/* ICRxx shared IRQs for ICR */
ICR00 = 6; /* IRQ11 CAN #0 (receive complete) */
/* IRQ12 CAN #0 (transmission complete
node status transition) */
ICR01 = 6; /* IRQ13 CAN #1 (receive complete)
notused for MB90545 series */
/* IRQ14 CAN #1 (transmission complete
node status transition) */
ICR02 = 7; /* IRQ15 external interrupt INT0/INT1 */
/* IRQ16 timebase timer */
ICR03 = 6; /* IRQ17 16-bit reload timer #0 */
/* IRQ18 A/D converter */
ICR04 = 7; /* IRQ19 I/O timer */
/* IRQ20 external interrupt INT2/INT3 */
ICR05 = 7; /* IRQ21 serial I/O */
/* IRQ22 PPG #0/1 */
ICR06 = 7; /* IRQ23 input capture CH.0 */
/* IRQ24 external interrupt INT4/INT5 */
ICR07 = 7; /* IRQ25 input capture CH.1 */
/* IRQ26 PPG #2/3 */
ICR08 = 7; /* IRQ27 external interrupt INT6/INT7 */
/* IRQ28 watch timer */
ICR09 = 7; /* IRQ29 PPG #4/5 */
/* IRQ30 input capture CH.2/3 */
ICR10 = 7; /* IRQ31 PPG #6/7 */
/* IRQ32 output compare CH.0 */
ICR11 = 7; /* IRQ33 output compare CH.1 */
/* IRQ34 input capture CH.4/5 */
ICR12 = 7; /* IRQ35 output compare CH.2/3 or
input capture CH.6/7 */
/* IRQ36 16-bit reload timer #1 */
ICR13 = 6; /* IRQ37 UART #0 (receive complete) */
/* IRQ38 UART #0 (transmission compl.)*/
ICR14 = 6; /* IRQ39 UART #1 (receive complete) */
/* IRQ40 UART #1 (transmission compl.)*/
ICR15 = 7; /* IRQ41 IRQ41-handler */
/* IRQ42 delayed interrupt */
}
/*------------------------------------------------------------------------
Prototypes
Add your own prototypes here. Each vector definition needs is proto-
type. Either do it here or include a header file containing them.
*/
__interrupt void DefaultIRQHandler (void);
__interrupt void can0_rx (void);
__interrupt void can1_rx (void);
__interrupt void irqsrv_com1 (void);
__interrupt void irqsrv_com2 (void);
__interrupt void ReloadTimer0(void);
__interrupt void irqsvruart0_rx(void);
__interrupt void irqsvruart0_tx(void);
__interrupt void Uart1_Rx_int(void);
__interrupt void Uart1_Tx_int(void);
/*------------------------------------------------------------------------
Vector definiton
Use following statements to define vectors. All resource related
vectors are predefined. Remaining software interrupts can be added here
as well.
NOTE: If software interrupts 0 to 7 are defined here, this might
conflict with the reset vector in the start-up file.
*/
#pragma intvect DefaultIRQHandler 9 /* software interrupt 9 */
#pragma intvect DefaultIRQHandler 10 /* exeception handler */
#pragma intvect can0_rx 11 /* CAN #0 (receive complete) */
#pragma intvect DefaultIRQHandler 12 /* CAN #0 (transmission complete node status transition) */
#pragma intvect can1_rx 13 /* CAN #1 (receive complete) notused for MB90545 series */
#pragma intvect DefaultIRQHandler 14 /* CAN #1 (transmission complete node status transition) */
#pragma intvect irqsrv_com1 15 /* external interrupt INT0/INT1 */
#pragma intvect DefaultIRQHandler 16 /* timebase timer */
#pragma intvect ReloadTimer0 17 /* 16-bit reload timer #0 */
#pragma intvect DefaultIRQHandler 18 /* A/D converter */
#pragma intvect DefaultIRQHandler 19 /* I/O timer */
#pragma intvect irqsrv_com2 20 /* external interrupt INT2/INT3 */
#pragma intvect DefaultIRQHandler 21 /* serial I/O */
#pragma intvect DefaultIRQHandler 22 /* PPG #0/1 */
#pragma intvect DefaultIRQHandler 23 /* input capture CH.0 */
#pragma intvect DefaultIRQHandler 24 /* external interrupt INT4/INT5 */
#pragma intvect DefaultIRQHandler 25 /* input capture CH.1 */
#pragma intvect DefaultIRQHandler 26 /* PPG #2/3 */
#pragma intvect DefaultIRQHandler 27 /* external interrupt INT6/INT7 */
#pragma intvect DefaultIRQHandler 28 /* watch timer */
#pragma intvect DefaultIRQHandler 29 /* PPG #4/5 */
#pragma intvect DefaultIRQHandler 30 /* input capture CH.2/3 */
#pragma intvect DefaultIRQHandler 31 /* PPG #6/7 */
#pragma intvect DefaultIRQHandler 32 /* output compare CH.0 */
#pragma intvect DefaultIRQHandler 33 /* output compare CH.1 */
#pragma intvect DefaultIRQHandler 34 /* input capture CH.4/5 */
#pragma intvect DefaultIRQHandler 35 /* output compare CH.2/3 or input capture CH.6/7 */
#pragma intvect DefaultIRQHandler 36 /* 16-bit reload timer #1 */
#pragma intvect irqsvruart0_rx 37 /* UART #0 (receive complete) */
#pragma intvect irqsvruart0_tx 38 /* UART #0 (transmission compl.)*/
#pragma intvect Uart1_Rx_int 39 /* UART #1 (receive complete) */
#pragma intvect Uart1_Tx_int 40 /* UART #1 (transmission compl.)*/
#pragma intvect DefaultIRQHandler 41 /* IRQ41-handler */
#pragma intvect DefaultIRQHandler 42 /* delayed interrupt */
/*------------------------------------------------------------------------
DefaultIRQHandler()
This function is a placeholder for all vector definitions. Either use
your own placeholder or add necessary code here.
*/
__interrupt
void DefaultIRQHandler (void)
{
__DI(); /* disable interrupts */
while(1)
__wait_nop(); /* halt system */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -