求助了很多論壇 , 都沒法解決的簡單問題.......-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: andywwf

[已解决] 求助了很多論壇, 都沒法解決的簡單問題.......

[复制链接]
 楼主| 发表于 2022-1-17 22:16 | 显示全部楼层
pnlaoxi 发表于 2022-1-17 18:50
要按顺序来触发灯闪,也就是加个状态,第1个灯闪完,才开始闪第2个灯。我也是新手,顺便问回复帖子一般是怎 ...

用 工具欄的 <> 貼上代碼
发表于 2022-1-17 22:34 | 显示全部楼层

我的程序不是写给你了嘛!
 楼主| 发表于 2022-1-17 22:58 | 显示全部楼层
topdog 发表于 2022-1-17 22:34
我的程序不是写给你了嘛!

你寫的是大學程度, 我只是幼稚園程度, 沒法參考呀!

发表于 2022-1-18 13:34 | 显示全部楼层
第一个loop循环里,if(millis()-FLASH_START_TIME2<=WW_ON)这条语句就将FLASH_START_TIME2变成0了,造成变量FLASH_START_TIME2开始时定义的数值失效。
因为刚开始的时候,这条语句里millis()是0,FLASH_START_TIME2是300,又涉及到无符号数相减的问题,(millis()-FLASH_START_TIME2)得到的是一个很大的数字,远大于(WW_ON * 5 + WW_OFF),所以一开始就执行代码最后的语句else { FLASH_START_TIME2=millis(); },此语句将FLASH_START_TIME2赋值为0了,跟上面FLASH_START_TIME一样的数值,现象就是两个灯同步闪。
加一条if(millis()>FLASH_START_TIME2){}语句将//.......................................................................... LED2后面的代码包含起来可以避免这个问题。
 楼主| 发表于 2022-1-18 19:54 | 显示全部楼层
pnlaoxi 发表于 2022-1-18 13:34
第一个loop循环里,if(millis()-FLASH_START_TIME2FLASH_START_TIME2){}语句将//......................... ...

高手就是不一樣, 馬上就秒殺了.


真的可以了, 非常感謝 閣下  出手相助.
個多月解不了的, 解決了.
小的感激
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 16:03 , Processed in 0.068592 second(s), 12 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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