[問題] arduino 延遲問題

看板Electronics作者 (小小翰癡)時間8年前 (2017/04/08 13:16), 8年前編輯推噓1(107)
留言8則, 5人參與, 最新討論串1/3 (看更多)
我程式寫一個亮燈還有啟動碼達一個週期的排程照顧植物 其中部分用analogwrite寫了5支腳位給led燈 後寫delay兩小時 再關掉 燈卻1分到兩分多就自己關掉繼續跑下面程式 且每次loop關掉的時間都不ㄧ樣 有試過只延遲 20秒 也是有提早關掉(有時1秒有時7秒有時正常都不固定) 完全無法理解 是有啥原因可能造成? 是一次太多腳位且用pwm寫 暫存問題還是? 求解!謝謝 ----- Sent from JPTT on my HTC_A9u. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.28.18 ※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1491628607.A.2E3.html

04/08 13:34, , 1F
最可能的原因是程式寫錯,拿出來大家參詳一下如何?
04/08 13:34, 1F

04/08 13:35, , 2F
比如說,delay() 的單位是 ms 而不是秒...
04/08 13:35, 2F

04/08 15:42, , 3F
只能給程式才知道
04/08 15:42, 3F

04/08 18:28, , 4F
要準就用Timer算
04/08 18:28, 4F

04/08 18:52, , 5F
Arduino 的 milli() 函數存取計時變數時沒有先關掉
04/08 18:52, 5F
查了有看沒有懂 是要特別改內部程式還是有好用的函式庫直接用?

04/08 18:52, , 6F
T0 中斷, 而且計時變數是 32bits, 導致存取到一半時
04/08 18:52, 6F

04/08 18:53, , 7F
如果發生 T0 中斷, 取得的計時累加值會不正確
04/08 18:53, 7F
※ 編輯: goodboylin77 (223.137.184.39), 04/09/2017 07:49:25

04/09 16:46, , 8F
建議是不要用delay啦 用count++去算會比較好
04/09 16:46, 8F
文章代碼(AID): #1Ow78_BZ (Electronics)
文章代碼(AID): #1Ow78_BZ (Electronics)