找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

又有一个c语言的程序问题想问

查看数: 1721 | 评论数: 8 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2024-2-5 13:43

正文摘要:

学习板上的数码管显示60然后是59,感觉是只执行了num2等于0,num2等于1,到了num2等于1就停了。然后我加了个if(num2等于1等于) num2等于0,在那个switch语句后面for循环里面,然后学习板上的结果也不对。 把num2 ...

回复

ID:1110982 发表于 2024-2-27 13:39

中断处理函数的循环有问题
ID:883242 发表于 2024-2-8 03:09
看你下面是main()那么这段代码是中断处理程序,里面不要用for,也不要用delay()
ID:1110745 发表于 2024-2-6 13:53
进入死循环了,要让他重新启动
ID:1101371 发表于 2024-2-6 13:44
xiaobendan001 发表于 2024-2-6 13:04
不是那样的,在你得到==20之后,要让他=0这样就从新开始了

是的,要让它重新开始循环,不然会加很久
ID:1109793 发表于 2024-2-6 13:04
Pikachu233 发表于 2024-2-6 10:24
我理解了,并且通过实验验证了,是因为那个num1的函数没写到中断里面中断程序运行的时时序和主程序的有可 ...

不是那样的,在你得到==20之后,要让他=0这样就从新开始了
ID:458247 发表于 2024-2-6 12:59
Pikachu233 发表于 2024-2-6 10:24
我理解了,并且通过实验验证了,是因为那个num1的函数没写到中断里面中断程序运行的时时序和主程序的有可 ...

中断可能进了两三次了,你主程序才运行完一轮,对时序要求严格的函数,是需要放在中断里面的,但是中断里面也不能放太多东西,不然主程序没得跑了,都跑中断服务函数了。另外就是延时函数能不用就不用
ID:1101371 发表于 2024-2-6 10:24
xiaobendan001 发表于 2024-2-5 18:29
上个帖子说了,你的num1在第一次等于20以后一直加知道65535之后才会再次出现==20的情况,所以减到59就需要 ...

我理解了,并且通过实验验证了,是因为那个num1的函数没写到中断里面中断程序运行的时时序和主程序的有可能会有冲突
ID:1109793 发表于 2024-2-5 18:29
上个帖子说了,你的num1在第一次等于20以后一直加知道65535之后才会再次出现==20的情况,所以减到59就需要等很久才能到58的

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表