📄 other_event.asm
字号:
.section program;
#include "..\intrmgr\intr.def"
#define EVT_BEGIN(init_pos, num) \
BEGIN_HANDLER \
LDREG(p5, SIC_ISR); \
LDREG(p4, _sys_callback); \
p3 = num; \
loop DISPATCH_EVENTS_##init_pos lc0 = p3; \
p3 = (init_pos << 2); \
p4 = p4 + p3; \
LDREG(r7, (1 << init_pos)); \
loop_begin DISPATCH_EVENTS_##init_pos; \
r0 = [p5]; \
r0 = r0 & r7; \
cc = r0 == 0; \
if cc jump SKIP_EVENT_##init_pos; \
p0 = [p4]; \
call (p0); \
SKIP_EVENT_##init_pos: \
p4 += 4; \
r7 = r7 << 1; \
loop_end DISPATCH_EVENTS_##init_pos;
#define EVT_END() \
END_HANDLER \
rti;
.extern _sys_callback;
#define EVT7_INT_FLAG ( PLL_INT | DMAERR_INT | IPORTERR_INT )
_evt7_isr:
.global _evt7_isr;
EVT_BEGIN(0, 3)
EVT_END()
_evt7_isr.end:
#define EVT8_INT_FLAG (RTC_INT | DMA0_INT)
_evt8_isr:
.global _evt8_isr;
EVT_BEGIN(3, 2)
EVT_END()
_evt8_isr.end:
#define EVT9_INT_FLAG (DMA3_INT | DMA4_INT | DMA5_INT | DMA6_INT)
_evt9_isr:
.global _evt9_isr;
EVT_BEGIN(5, 4)
EVT_END()
_evt9_isr.end:
#define EVT10_INT_FLAG (TWI_INT | DMA7_INT | DMA8_INT | DMA9_INT | DMA10_INT | DMA11_INT)
_evt10_isr:
.global _evt10_isr;
EVT_BEGIN(9, 6)
EVT_END()
_evt10_isr.end:
#define EVT11_INT_FLAG (CANRx_INT | CANTx_INT | DMA1_INT | DMA2_INT)
_evt11_isr:
.global _evt11_isr;
EVT_BEGIN(15, 4)
EVT_END()
_evt11_isr.end:
#define EVT12_INT_FLAG (TMR0_INT | TMR1_INT | TMR2_INT | TMR3_INT | TMR4_INT | TMR5_INT | TMR6_INT | TMR7_INT | PORTFG_A_INT | PORTG_B_INT)
_evt12_isr:
.global _evt12_isr;
EVT_BEGIN(19, 10)
EVT_END()
_evt12_isr.end:
#define EVT13_INT_FLAG (MDMA0_INT | MDMA1_INT | WTDTMR_INT)
_evt13_isr:
.global _evt13_isr;
EVT_BEGIN(29, 3)
EVT_END()
_evt13_isr.end:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -