[問題] Arduino 註解程式碼後動作不正常已刪文

看板ASM (組合語言)作者 (溫柔殺手)時間3年前 (2020/07/26 13:22), 3年前編輯推噓3(309)
留言12則, 4人參與, 3年前最新討論串1/1
各位版上的大大下午好 我是Arduino初心者,買了一個教學盒按表操課。 如果什麼都不改的話確實可以動作,但是,我覺得他的wifi連線動作太慢, 所以做了一些修改,結果最後把Serial.println這行註解掉後動作就不正常了。 原始程式碼如下 // Flag's Block 產生的草稿碼 #include <ESP8266WiFi.h> #include <ESP8266WebServer.h> #include "data/webpages.h" int resistor_of_skin; unsigned long Time_counter; int lie_value; ESP8266WebServer _esp8266WebServer(80); void handleRoot() { #ifndef WEBPAGE_IN_PROGMEM _esp8266WebServer.send(200, "text/html", mainPage); #else _esp8266WebServer.send_P(200, PSTR("text/html"), mainPage); #endif } void handleNotFound() { #ifndef WEBPAGE_IN_PROGMEM _esp8266WebServer.send(404, "text/html", errorPage); #else _esp8266WebServer.send_P(404, PSTR("text/html"), errorPage); #endif } void handleSetting() { #ifndef WEBPAGE_IN_PROGMEM _esp8266WebServer.send(200, "text/html", settingPage); #else _esp8266WebServer.send_P(200, PSTR("text/html"), settingPage); #endif } void lie_return() { _esp8266WebServer.send(200, u8"text/plain", String(lie_value)); } void lie_transfer(int resistor_of_skin) { resistor_of_skin = (resistor_of_skin < 10 ? 10 : ( resistor_of_skin > 40 ? 40 : resistor_of_skin)); lie_value = (map(resistor_of_skin, 10, 40, 180, 360)); } // setup() 會先被執行且只會執行一次 void setup() { Serial.begin(9600); pinMode(A0, INPUT); Time_counter = millis(); while (!WiFi.softAP(u8"LocalKing", u8"12345678", 7,false)); _esp8266WebServer.on("/lie", lie_return); _esp8266WebServer.on("/", handleRoot); _esp8266WebServer.onNotFound(handleNotFound); _esp8266WebServer.on("/setting", handleSetting); _esp8266WebServer.begin(); } // loop() 裡面的程式會不斷重複執行 void loop() { _esp8266WebServer.handleClient(); if (millis() + Time_counter > 1000) { resistor_of_skin = analogRead(A0); Serial.println(resistor_of_skin); lie_transfer(resistor_of_skin); Time_counter = millis(); } 我作了以下動作 1.把Time_counter全部拿掉,我覺得millis()+Time_counter似乎是多餘的。 應該只要留millis()就可以了。 執行正常,但是網頁資料傳輸還是慢。 2.註解//Serial.println(resistor_of_skin); 此時,wifi的ID就完全看不到了。 把註解拿掉,Wifi的ID又可以看到了。 請問高手這是發生什麼事,不應該註解掉Serial.println Wifi就看不到阿 煩請解惑感恩 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.232.28.188 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/ASM/M.1595740963.A.22E.html ※ 編輯: yimean (118.232.28.188 臺灣), 07/26/2020 13:28:49

07/26 14:10, 3年前 , 1F
1.的效果是定期執行 你拿掉之後會變成連續執行
07/26 14:10, 1F

07/26 17:08, 3年前 , 2F
請問為什麼呢?millis()就等於Time_counter不是嗎?而一
07/26 17:08, 2F

07/26 17:08, 3年前 , 3F
秒鐘後,millis()一定會大於1000阿,理論上他本來就會瘋
07/26 17:08, 3F

07/26 17:08, 3年前 , 4F
狂執行不會休息不是嗎?
07/26 17:08, 4F

07/26 19:02, 3年前 , 5F
抱...抱歉 是我看錯...
07/26 19:02, 5F

07/26 19:24, 3年前 , 6F
@c大,沒關係的,看錯人人有。感謝你熱心回應。
07/26 19:24, 6F

07/26 22:48, 3年前 , 7F
if (millis() - Time_counter > 1000) 才對吧
07/26 22:48, 7F

07/27 09:42, 3年前 , 8F
@g大,你的推想比較合理,但是這是旗標的Code我沒有改
07/27 09:42, 8F

07/27 13:14, 3年前 , 9F
速度要變快應該可以用7樓的那個方式把1000改掉試試看
07/27 13:14, 9F

07/27 13:15, 3年前 , 10F
然後註解掉看不到ID是指在comport那個介面上看不到嗎
07/27 13:15, 10F

07/27 16:13, 3年前 , 11F
不是,就是電腦要連線就看不到Wifi的ID:LocalKing
07/27 16:13, 11F
我來更新一下最新狀況,依照god145145大大的指導,連線速度果然快很多。 我去看Serial.println的內容也就沒有這麼瘋狂執行了。 旗標的Code其實存在著問題。 但是Wifi的連線上問題還是有,只是變不一樣了。 我也不曉得Windows更新過後隔了一天竟然會有不一樣的結果 把Serial.println註解掉後現在看的到Hot Spot的ID也連的上了。 但是卻無法顯示內容=.= 我都不知道該說什麼好,我只要把註解拿掉,一切都恢復正常。 請問有大大有經驗嗎? ※ 編輯: yimean (118.232.28.188 臺灣), 07/27/2020 21:09:50

07/27 21:10, 3年前 , 12F
感謝G大指導
07/27 21:10, 12F
文章代碼(AID): #1V7HCZ8k (ASM)
文章代碼(AID): #1V7HCZ8k (ASM)