阅读:1173回复:3
学习中的一点不解
诸位兄弟们,你们好!
我是五天前开始学习USB的,在学习《PDIUSBD12 USB固件编程与驱动开发》时有一点问题,希望谁懂的能帮我解惑,谢谢。 在“mainloop.c”文件中,主函数“void main(void)”多次用到了如: if(bEPPflags.bits.timer){//定时器溢出,检测按键状态 DISABLE; bEPPflags.bits.timer = 0; ENABLE; ........... if(bEPPflags.bits.verbose == 0) { printf(\"Verbose Mode = ON.\\n\"); DISABLE; bEPPflags.bits.verbose = 1; ENABLE; } else { printf(\"Verbose Mode = OFF.\\n\"); DISABLE; bEPPflags.bits.verbose = 0; ENABLE; } ......... if (bEPPflags.bits.bus_reset) {//设备复位处理 DISABLE; bEPPflags.bits.bus_reset = 0; ENABLE; ......... 的代码段。 请问这里面的“DISABLE……ENABLE”,先关中断,然后设置一个标志再马上开中断是做什么用的?为什么要这样做呢? [编辑 - 12/14/03 by au2o3t] [编辑 - 12/14/03 by au2o3t] |
|
沙发#
发布于:2003-12-14 15:23
用户被禁言,该主题自动屏蔽! |
|
板凳#
发布于:2003-12-14 15:52
应该不是吧?那些虽说是共享的变量,但中断服务程序中根本不会读取或者改变它们啊。
|
|
地板#
发布于:2003-12-14 16:46
来去来回想了几圈,觉得上面那位仁兄讲的确有道理,虽然还有些模糊^__^送分啦 :D
|
|