ESP8266的RTC時間和系統時間測試對比

2022-07-16 23:33:17 字數 2444 閱讀 8336

已有 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 輸出 假 中電平...