微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 求大神帮我看看这个程序

求大神帮我看看这个程序

时间:10-02 整理:3721RD 点击:


就这个交通灯。为什么到左转灯那里就是不执行下一步让红灯亮?而是一直循环左转灯?

最好把程序用文本贴出来,图片方式不好拷贝,这样说吧,按30秒计时,一开始亮绿灯,15秒后亮左转灯,最后5秒时亮红灯,执行顺序是
初始化,亮绿灯,NUM=30
以下是循环判断
一,定时到,修改NUM值
二,NUM是否等于15,是则灭绿灯,亮左转灯。
三,NUM是否等于5,是则灭左转灯,亮红灯。
四,NUM是否等于0,是则灭红灯,亮绿灯,NUM=30。
返回一继续判断

你红灯亮那里根本执行不到啊

我是刚才学的菜鸟。就是不懂为什么 那里执行不到?能仔细解答下嘛?谢谢了

你那里的判断是num==0,进入之后把num变成10了,那下面那个num==0那里还怎么执行

那大神你说这里该怎么解决?我实在是想不通了

那大神你说这里该怎么解决?我实在是想不通了

那大神你说这里该怎么解决?我实在是想不通了

我还不清楚你这里要实现的功能是什么....

就是一个交通指示灯啊。 先绿灯亮10秒后关闭绿灯。在亮左转灯10秒后在关闭左转灯,亮红灯

加个标志位判断当前是红还是绿不就行了,或者定时设为20啊,当num等于10的时候换一个灯亮,到20再重置

我试了将时间 改为绿灯亮30秒.然后判断到15时绿灯灭左转灯亮,在判断到0时左转灯灭红灯亮。但还是行不通   我又设置了标志位。但我不知道 怎么使用标志位。好尴尬。真的才学几天 ,很多东西不是很懂

程序最好再贴全一点,没能看到num的计算部分。如果采用如30秒计时的方法,那要把亮红灯部分放在亮左转灯的判断之外,也就是以时间为基准,所有灯的控制判断都是同一层次的,不需要进行嵌套。你现在的亮红灯判断部分是嵌套在亮左转灯判断里的。

大哥能说通俗点吧。我刚学 你说的太深奥了我理解不是很清楚。我有点理解你的意思了  你的意思 是30秒的计时的话,设置到15时亮绿灯,到0时亮红灯是吧? 但具体格式是怎么样的?

谢谢了。你这么一说我倒是搞明白了,但现在又有一个新问题,就是想让他黄灯亮 比如我这样if(num<=65)   我想让这个变量到65开始就亮黄灯一直到60  
可我像上面这样写的话 他就小于65黄灯一直在亮。有没有什么 办法 吗?

谢谢了。你这么一说我倒是搞明白了,但现在又有一个新问题,就是想让他黄灯亮 比如我这样if(num<=65)   我想让这个变量到65开始就亮黄灯一直到60  
可我像上面这样写的话 他就小于65黄灯一直在亮。有没有什么 办法 吗?

不太明白你的问题,不过总体来讲,判断条件最好有唯一性,比如如果NUM是递减的话,那么只要NUM小于65,NUM<=65这个条件都会满足,那么对应的语句就都会被执行,所以判断条件最好有唯一性。
另一个就是做灯光转换时,该熄灭的灯都要关闭,比如绿灯转换为左转灯时,点亮左转灯前后,应该关闭绿灯。

因为我是定义80秒开始亮绿灯递减到60时关闭绿灯亮左转灯。 那么我是不是在关闭绿灯的前几秒是不是该亮黄灯?我就是想让他在65-60时关闭绿灯亮黄灯。 其实就是路上的交通灯嘛。

那可以做成多条件的,就是条件是大于60,同时小于65,if语句是可以包含多个判断条件的

我试了下。不能执行。不知道 是不是我写的格式错误了? 我是这样写的。if(65>num<60)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top