阅读:1922回复:3
usb的中断处理函数太短了
我用Keil uVersion2打开的别人的ez_usb示例程序, 芯片用的是cy7c68013,我想写usb设备程序的朋友都应该看到过这代码,有个问题我老想不通,为什么明明是中断要处理的事情,都要到main主函数的死循环中处理呢
void ISR_Sudav(void) interrupt 0 { GotSUD = TRUE; //主函数循环检查这个标志 //问题是为什么不在这里面处理逻辑呢 EZUSB_IRQ_CLEAR(); USBIRQ = bmSUDAV; } |
|
|
沙发#
发布于:2010-03-17 09:54
中断的系统优先级高,它能优先占用CPU资源,如果中断处理做的事情过多,势必会影响普通操作的性能,所以要尽快完成,一般只做一些关键性的寄存器调置和设定标志位。主要或耗时的操作最好还是在普通模式下做。
|
|
板凳#
发布于:2010-03-17 10:30
是这个道理,但是我怕轮到主程序处理时,数据寄存器的内容已经被其他中断源改写了
|
|
|
地板#
发布于:2010-03-26 11:41
我也遇到这个疑问,没人回答啊
|
|