已有 6613 次閱讀2016-5-17 13:23 |個人分類:esp8266 wifi
官方有關時間的api
主要有兩個
system_get_time
功能:查詢系統時間,單位:微秒
函式定義:
uint32 system_get_time(void)
引數:⽆無
返回:系統時間,單位:微秒。
system_get_rtc_time
功能:查詢 rtc
時間,單位:
rtc
時鐘週期
⽰示例:
例如 system_get_rtc_time
返回 10 (
表⽰示
10 個
rtc
週期),
system_rtc_clock_cali_proc 返回
5.75 (
表⽰示
1 個
rtc
週期為
5.75
微秒),
則實際時間為 10 x 5.75 = 57.5
微秒。注意:
system_restart 時,系統時間歸零,但是
rtc
時間仍然繼續。但是如果外部硬體通過
ext_rst
腳或者 chip_en
腳,將芯⽚片復位後(包括
deep-sleep
定時喚醒的情況),
rtc
時鐘會復位。具
體如下:
• 外部復位(ext_rst
): rtc memory
不變,rtc timer
暫存器從零計數
• watchdog reset : rtc memory
不變,rtc timer
暫存器不變
• system_restart : rtc memory
不變,rtc timer
暫存器不變
• 電源上電 : rtc memory
隨機值,
rtc timer
暫存器從零計數
• chip_en
復位 : rtc memory
隨機值,
rtc timer
暫存器從零計數
函式定義:
uint32 system_get_rtc_time(void)
引數:⽆無
返回:rtc 時間
system_rtc_clock_cali_proc
功能:查詢 rtc
時鐘週期
.注意:
rtc 時鐘週期含有⼩小數部分。
rtc 時鐘週期會隨溫度或電源電壓變化發⽣生偏移,因此
rtc
時鐘適⽤用於在精度可接受的範圍內進⾏行計
時,建議最多每分鐘調⽤用⼀一次即可。
函式定義:
uint32 system_rtc_clock_cali_proc(void)
引數:⽆無
返回:rtc 時鐘週期,單位:微秒,
bit11 ~ bit0
為⼩小數部分
⽰示例:
os_printf(「
clk cal : %d \r\n
」,system_rtc_clock_cali_proc()>>12);
上面兩個都可以實現計算時間的功能,主要區別是system_get_time(void)
時間只要出現系統重啟就會重新計時,但是
system_get_rtc_time
只有不掉電就不會出現計時丟失
,所以如果我們需要實現乙個時鐘功能,肯定是選擇system_get_rtc_time函式來實現。對於這兩個函式的區別可以看下就一目了然:
從上面我們看出來系統時間計時和rtc
計時都差不多,相差不大,
system_rtc_clock_cali_proc
也確實如官方
api所說的
rtc
時鐘週期會隨溫度或電源電壓變化發⽣生偏移,所以也僅僅只有用做不是精確計時,如果需要精確計時還是需要外部
rtc晶元。還有電源重啟後之前
rtc的數值是會丟失的
和api
所說的電源上電
: rtc memory
隨機值,
rtc timer
暫存器從零計數是一致的,有關esp8266的時間函式測試分析就此結束。
關於ESP8266模組的配置
從接觸esp8266到現在也有快乙個月的時間了。我最開始是用的有人的wifi模組,感覺資料還比較全,用起來還比較順手。後來發現有低成本的esp8266模組就立馬入手了幾個,發現資料太亂了都不知道從 開始搞起,測試了一下經常是busy。所以去買了幾個tm7681 想著是聯華科這樣的大廠出來的雖然貴幾塊...
我的門禁系統 ESP8266
還可以繼續加強 1 加感測器,判斷是有人出門,還是有人進門 2 門口墊子下面加個壓力感測器,順便上面人的重量 研究中,暫不知道如何實現 3 增加個燈。最好結合進門還是出門的判斷,再加上判斷是不是白天。第1點可以用雷射器件,結合光敏感測器對射,判斷是否有人經過。將其放在室內,如果先行觸發,則表示出門。...
ESP8266的PWM 模擬輸出
本教程演示如何使用 esp8266 nodemcu 使用 arduino ide 生成 pwm 訊號。例如,我們將通過一段時間改變占空比來降低 led 亮度。esp8266 gpios 可以設定為輸出 0v 或 3.3v,但它們不能輸出任何電壓。但是,您可以使用脈衝寬度調製 pwm 輸出 假 中電平...