Re: [問題] arduino 延遲問題

看板Electronics作者 (.......................)時間7年前 (2017/04/10 22:05), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
: 推 goodboylin77: http://i.imgur.com/Cn3EUss.jpg
04/09 21:06 : → goodboylin77: 中間那段兩小時的會跑一兩分鐘就跑下面程式 04/09 21:08 看不出來問題出在哪, 不過可以改用別種寫法試看看 #define STATE_1 1 #define STATE_2 2 #define STATE_3 3 #define STATE_1_TIME 0 #define STATE_2_TIME 95000 #define STATE_3_TIME 7200000 uint8_t _currentState; uint32_t _timestamp; void setup() { ...... ...... pinMode(ledPin1, OUTPUT); pinMode(ledPin2, OUTPUT); pinMode(ledPin3, OUTPUT); pinMode(ledPin4, OUTPUT); pinMode(ledPin5, OUTPUT); digitWrite(ledPin1, HIGH); analogWrite(ledPin2, 0); analogWrite(ledPin3, 0); analogWrite(ledPin4, 0); analogWrite(ledPin5, 0); _currentState = STATE_1; _timestamp = millis(); ...... ...... } void loop() { ...... ...... uint32_t now = millis(); uint32_t elapsed = now - _timestamp; switch(_currentState) { case STATE_1: if(elapsed > STATE_1_TIME) { digitalWrite(ledPin1, LOW); analogWrite(ledPin2, 50); analogWrite(ledPin3, 50); analogWrite(ledPin4, 50); analogWrite(ledPin5, 50); _timestamp = now; _currentState = STATE_2; } break; case STATE_2: if(elapsed > STATE_2_TIME) { analogWrite(ledPin2, 0); analogWrite(ledPin3, 0); analogWrite(ledPin4, 0); analogWrite(ledPin5, 0); _timestamp = now; _currentState = STATE_3; } break; case STATE_3: ...... ...... break; } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.26.41.106 ※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1491833135.A.D6B.html
文章代碼(AID): #1Owv4lrh (Electronics)
文章代碼(AID): #1Owv4lrh (Electronics)