我上篇文章说了,我要写写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文章
762浏览量
114584 -
定时器
+关注
关注
23文章
3229浏览量
114295 -
ESP8266
+关注
关注
50文章
962浏览量
44743
原文标题:ESP8266定时器.上
文章出处:【微信号:TT1827652464,微信公众号:云深之无迹】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论