关于合泰单片机的问题

[复制链接]
1344|15
 楼主| 酱油兑啤酒 发表于 2020-3-25 17:36 | 显示全部楼层 |阅读模式
有大佬帮忙看一下吗?
我在使用合泰的单片机的时候,遇到一个问题,定时器1ms中断一次,计数1000次,就是1s,然后在while(1)里面判断,如果到达1000就IO翻转一下,然后发现一直都没有进入判断,如果把判断放到中断里面就可以实现,
然后我进行了测试,while(1)里面一直IO翻转,1000次计数的判断到了就把IO口拉低,关闭定时器中断,还是没有进去
下面是代码和逻辑分析仪抓取的波形,有大佬知道怎么回事吗,还是说我的代码有问题




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
叶春勇 发表于 2020-3-25 17:47 | 显示全部楼层
中断里有while死循环?进去就出不来了。

评论

中断里用的变量都要加volatile,不然搞点莫名其妙的问题,浪费时间。  发表于 2020-3-26 11:24
不是,是合泰的变量需要加volatile  发表于 2020-3-26 11:22
Cjy_JDxy 发表于 2020-3-25 17:56 | 显示全部楼层
把while去掉,time-1000ms到了就清零

评论

哦哦 ,我知道了,你们误解了,这个是两张图片,前面的是中断的,中间那张代码图片是main的  发表于 2020-3-26 13:51
@Cjy_JDxy :你意思只翻转一次  发表于 2020-3-26 11:42
@酱油兑啤酒 :进中断我知道,但是死循环IO不翻转呀  发表于 2020-3-26 11:30
死循环也进中断的,狗也关了,不会复位  发表于 2020-3-26 11:23
yml1104 发表于 2020-3-26 08:45 | 显示全部楼层
time_1000ms到了之后先清零再做别的动作 还有是不是没定义成全局变量?

评论

@sjnh :没有吧,我之前用的单片机都是不需要的  发表于 2020-3-26 13:53
@酱油兑啤酒 :这个不是合泰单片机的问题,是所有单片机只要中断、主程序都用的变量,一定加volatile  发表于 2020-3-26 11:39
不是,找到问题了,合泰的单片机在中断函数和主函数里面都用到的变量需要volatile声明一下  发表于 2020-3-26 08:58
gx_huang 发表于 2020-3-26 11:58 | 显示全部楼层
这么简单的代码也要问,中断函数里怎么会有死循环?

评论

中间的那个图片是main的,我图片放得不好,不是中断的while  发表于 2020-3-26 13:52
yzq13246068880 发表于 2020-3-26 13:37 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

31

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部