搜索

关于合泰单片机的问题

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

使用特权

评论回复
| 2020-3-25 17:47 | 显示全部楼层 | 奖励家园币
中断里有while死循环?进去就出不来了。

使用特权

评论回复

评论

叶春勇 2020-3-26 11:24 回复TA
中断里用的变量都要加volatile,不然搞点莫名其妙的问题,浪费时间。 
酱油兑啤酒 2020-3-26 11:22 回复TA
不是,是合泰的变量需要加volatile 
| 2020-3-25 17:56 | 显示全部楼层 | 奖励家园币
把while去掉,time-1000ms到了就清零

使用特权

评论回复

评论

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

使用特权

评论回复

评论

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

使用特权

评论回复

评论

酱油兑啤酒 2020-3-26 13:52 回复TA
中间的那个图片是main的,我图片放得不好,不是中断的while 
| 2020-3-26 13:37 | 显示全部楼层 | 奖励家园币

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

关闭

热门推荐上一条 /2 下一条

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