阅读:1140回复:2
请教:usbn关于#pragma中断的一段程序
各位帮忙分析一下,关于中断的处理,了解usbn的更好啊
在国半给的demo中,有如下代码: #pragma interrupt(usb_node_handler) void usb_node_handler(void) { …… while(usbn_event = read_usb(MAEV)) { …… } …… } 我的理解就是: 这里使用#pragma实现了对中断函数的定义,这里成为中断入口。当处理完MAEV中已有的中断后再进入等待状态。这样对吗? 如果是这样,但现在我的问题不知道从那里去得到这个中断信号,我用的是控制器是dsp。这个东西也不是很熟悉。现在想如果不利用程序的中断来实现同样的功能,可行吗? 设想是在初始化完成以后,在主循环中一直查询maev,程序如下: while(1) { unsigned char i_st; i_st=read_usb(MAEV); ENABLE_NODE_INTS(0) //关闭中断请求,并将maev寄存器清0 if(i_st !=0) { if(i_st & RX_EV)//由寄存器内容做处理,相同于原中断函数 …… …… } ENABLE_NODE_INTS(INTR_E|RX_EV|NAK|TX_EV|ALT)//重新开放中断 } 这样可以实现吗?谢谢!!!!! |
|
沙发#
发布于:2005-01-05 19:05
谢谢啊,那就是说理解没有错误了吧。这样这块dsp芯片除了无穷循环于传输就失去了数字处理功能了呵呵。暂时只要能满足传输就好了:)
|
|
板凳#
发布于:2005-01-03 14:30
可以的,就是麻烦点,速度慢点。
|
|