分享

*教學*Arduino WIFI(ESP8266) Time同步設計

之前初次上手應用所寫的程式碼是用到Arduino內建Delay函數
本次實驗是不用內建Delay函數。
以前學習Verilog的習慣是利用V-code時脈同步特性去設計韌體
Arduino說穿了,用的就是C的語法
但V-code與一般軟體的語法非常不一樣
兩種比起來我覺得同步時脈可以應用在此,甚至可以發揮得更好!
如果一個Aduino系統寫得越龐大,相對的各個模組的延遲時間(Delay)會互相影響,導致系統容易產生崩潰當機。
解決此問題的方法,就是利用同步時脈的概念,把每個模組的Delay給取代成固定頻率去執行。
但是Arduino loop() 頻率是板子上石英震盪器的頻率,有8M也有16M等等,如果要設定成固定頻率就必須用到 "Timer函式"(點擊下載)
下載好放在Arduino library裡
實驗方法
1.設計流程圖
2.Code除頻器
3.規劃狀態
4.完成
請配合Code一起服用
實驗開始
一.設計流程圖
1. 打開舊版Code
2.可以知道WIFI作傳輸總共有4個步驟: (1.)初始化,測試WIFI模組是否正常。(2.)WIFI模組基本功能設定。(3.)上傳數值至雲端。(4.)錯誤待滯區
3.設計出流程圖
Arduino 教學 WIFI Timer 時脈同步
二.Code除頻器
 1.在這邊 t.every()的單位時間是1m sec ,所以t.every(100,Wifi_main)就是0.1 sec 執行一次 Wifi_main 的函式。
t.every(100, Wifi_main);
2. 所以delaytime 的單位時間在Wifi_main 的函式裡就是 0.1 秒 , 原地數10次就等於1秒。
if (delaytime==10){ //delay 1 sec  delaytime=0;  if(debug.find("OK")){    Wifi_State=1; //next setting wifi mode  }  else{     Wifi_State=0; //back  }}else{delaytime++;}
三.規劃狀態
1.在這裡就直接圖解了。每個狀態都有自己不同的工作,而切換狀態的頻率就是 t.every()的時間倒數。
Arduino 教學 WIFI Timer 時脈同步
四.完成
#Arduino  #教學  #WIFI  #Timer  #時脈同步 
分類:學習

哈囉~大家好,我們是兩隻小豬🐷🐷 兩個愛吃喝玩樂的夫妻~ 最常在板橋走跳,發掘在地美食! 偶爾也會跑其他外縣市,喜愛分享各地美食&旅遊~ 截至2021.1.4文章共累積585篇, 總流量1451萬人次。

評論
上一篇
  • *美食*信義區超熱門排隊店_Honey pig 24小時營業韓式烤肉
  • 下一篇
  • *教學*Arduino WIFI(ESP8266) 初次上手應用
  • 更多文章
    載入中... 沒有更多了