打印

谁熟悉“CodeCruiser for EasyPack 51”的使用吗?

[复制链接]
2281|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
boris|  楼主 | 2007-4-12 10:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在使用“CodeCruiser for EasyPack 51”调试MCU,出现一个很奇怪的现象:
与问题相关的程序内容如下:
……
unsigned char IntCount = 0;
……
void TEST_INT0 (void) interrupt 0 using 2
{
    P3_1 = 1;
    EX0 = 0;
    ……
    IntCount ++;
    if( IntCount > 2 )
    {
        IntCount = 0;
        ……  // 执行中断算法
    }
    ……
    EX0 = 1;
    P3_1 = 0;
}
……
在程序的其它地方都没有操作IntCount。
调试中发现中断算法一直没有得到执行。经过逐步定位,发现IntCount在TEST_INT0结束时会变为0。即执行“IntCount ++”时,IntCount变为1,然后跳过“if( IntCount > 2 )”。在“TEST_INT0”程序结束的“}”之后又变为0,从而造成“if( IntCount > 2 )”总是跳过。

不知谁知道可能会是什么原因造成以上现象?
另外补充一点:在“CodeCruiser for EasyPack 51”的项目设置中的设备是选择AT89S52,编译结果报告的Program Size为:data=88.5 xdata=0 code=1528

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

30

帖子

0

粉丝