au2o3t
驱动牛犊
驱动牛犊
  • 注册日期2002-12-27
  • 最后登录2004-03-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1173回复:3

学习中的一点不解

楼主#
更多 发布于:2003-12-14 12:48
诸位兄弟们,你们好!

    我是五天前开始学习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]
pengenwen
禁止发言
禁止发言
  • 注册日期2003-03-07
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分1586分
  • 威望8380点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-12-14 15:23
用户被禁言,该主题自动屏蔽!
au2o3t
驱动牛犊
驱动牛犊
  • 注册日期2002-12-27
  • 最后登录2004-03-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-12-14 15:52
应该不是吧?那些虽说是共享的变量,但中断服务程序中根本不会读取或者改变它们啊。
au2o3t
驱动牛犊
驱动牛犊
  • 注册日期2002-12-27
  • 最后登录2004-03-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-12-14 16:46
来去来回想了几圈,觉得上面那位仁兄讲的确有道理,虽然还有些模糊^__^送分啦 :D
游客

返回顶部