阅读:1264回复:8
关于interrupt的定义请教!!
timer_isr() interrupt 1
{ DISABLE; ClockTicks++; bEPPflags.bits.timer = 1; ENABLE; } usb_isr() interrupt 0 { DISABLE; fn_usb_isr(); ENABLE; } 这两个定义没弄明白?是定义硬件的吗? 好像程序里没有调用过它们啊!! 大侠请给讲讲吧,什么意思? |
|
沙发#
发布于:2003-06-02 15:45
你说的是D12开发套件中KEILC 中断的处理函数,在主程序中有初始化INIT-TIMER0(VOID)函数发生中断时自动转移到此执行!
|
|
板凳#
发布于:2003-06-02 20:10
那要是我用其他的编译器
什么情况下进入fn_usb_isr(); 怎样进入?在主循环里添吗?需要定义什么吗? |
|
地板#
发布于:2003-06-03 10:13
那要看你是硬件中断还是查询中断了
如果是硬件中断那方法如前,在中断向量表里加入你中断服务程序的入口地址即可 如果是查询中断,那就在主程序里不断的查询中断寄存器,一点发现不为0就进入fn_usb_isr()程序处理。 |
|
地下室#
发布于:2003-06-04 07:38
我用查询的话
中断寄存器里的值,又是怎么给的呢? |
|
5楼#
发布于:2003-06-04 08:37
建阻用硬件中
|
|
|
6楼#
发布于:2003-06-04 11:31
关于硬件中断实在是一点不懂
能不能给详细讲讲怎么定义? 怎么在中断向量表添东西? 还要做什么其他的???? |
|
7楼#
发布于:2003-06-04 14:10
很
|
|
|
8楼#
发布于:2003-06-05 00:19
谢谢
可是我用的芯片不一样,用的是AT91f40816,实在是搞不懂其硬件中断?? 如果我做查询中断,需要注意什么?会产生哪些问题? 还有就是上面问的中断寄存器的值是怎么设的? 谢谢!!!! |
|