我上篇文章說了,我要寫寫ESP8266的定時器。我們這里要加一個微秒:百萬分之一秒,10(-6)次方。就使用到計算周期。
扯點關于時間的碎碎念。
老子說了,如果大道為零天道就是無窮小,人道就是無窮大:天道×人道=一,也就是“有” 所以才有的:“無中生有”。莊子強調的真的是無限分割么,你也太小看自己的老祖先了 老子的無從來也不是無,本來就是在強調無窮小的概念 而且早就有了無窮小的定義 天之道,損有余而補不足,天道指的就是無窮小 實質指的就是小到極限 無論是什么,小到極限仍然不是無,至少都有對大道(或者說0)的敬畏的存在。人之道,損不足以奉有余,看起來像是在強調無限,其實正好相反,人道強調的正是有界 或者說“度”。
首先ESP8266芯片內部有兩個區:
IROM:internal rom 內部ROM,指的是集成到SoC內部的ROM
IRAM:internal ram 內部RAM,指的是集成到SoC內部的RAM
dram是動態內存,需要周期性的充電
輪詢就是CPU挨個問這些外設,你需要我服務嗎?然后沒人用的話,一會兒再來問一圈,但是這個處理的速度是很快的,所以這個實時性倒是還行。
對于需要輪詢的應用這里建議使用定時器來計算,另外,定時器不要頻繁的調用。微秒定時器如果是不精確的話,需要使用硬件的定時器,最重要的是ISR一定要短。
反正就是精確延時的話,就要使用硬件的定時器。
另外:毫秒是一種較為微小的時間單位,符號為ms,1秒 = 10分秒;1分秒 = 10厘秒;1厘秒 = 10 毫秒 ;1 毫秒 = 1000微秒;1微秒 = 1000納秒;1納秒 = 1000皮秒。典型照相機的最短曝光時間為一毫秒。
定時器的使能,但是ESP8266沒有更多的技術資料,所以這個定時器到底是什么樣的,其實這里我也不是很清楚。
這里是定時器回調函數的定義
這個是微秒級別的延時,最高的精度為500us
硬件的ISR定時器的初始化的寫法,最后的參數是要不要自動的裝填。
硬件中斷定時器的寫法
定時器的回調函數一定不能寫到Flash內部。
硬件的定時器這樣使用
這里我找到一個ESP32內存分布情況
ESP32 內部存儲器(SRAM)的布局。SRAM 分為 3 個存儲塊 SRAM0、SRAM1 和SRAM2(以及 RTC 快速和慢速存儲器 2 個小塊).
SRAM 以兩種方式使用:一種用于指令存儲,稱為 IRAM(用于執行代碼,text 段),另一種用于數據存儲,稱為 DRAM(用作 BSS 段,Data 段和堆)。SRAM0 和 SRAM1 可以用作連續的 IRAM,而 SRAM1 和 SRAM2 可以用作連續的 DRAM 地址空間。
事件就是兩個物體之間產生了交互行為,就可以成為一個事件。而事件驅動就是兩個之間產生了交互行為,驅使兩個物體的一方,做出了相應的行為或動作。
本來還能寫,但是馬上就12點了,下篇文章繼續了。
審核編輯:劉清
-
sram
+關注
關注
6文章
764瀏覽量
114638 -
定時器
+關注
關注
23文章
3241瀏覽量
114517 -
ESP8266
+關注
關注
50文章
962瀏覽量
44852
原文標題:ESP8266定時器.上
文章出處:【微信號:TT1827652464,微信公眾號:云深之無跡】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論