我上篇文章说了,我要写写ESP8266的定时器。我们这里要加一个微秒:百万分之一秒,10(-6)次方。就使用到计算周期。 扯点关于时间的碎碎念。 老子说了,如果大道为零天道就是无穷小,人道就是无穷大:天道×人道=一,也就是“有” 所以才有的:“无中生有”。庄子强调的真的是无限分割么,你也太小看自己的老祖先了 老子的无从来也不是无,本来就是在强调无穷小的概念 而且早就有了无穷小的定义 天之道,损有余而补不足,天道指的就是无穷小 实质指的就是小到极限 无论是什么,小到极限仍然不是无,至少都有对大道(或者说0)的敬畏的存在。人之道,损不足以奉有余,看起来像是在强调无限,其实正好相反,人道强调的正是有界 或者说“度”。 首先ESP8266芯片内部有两个区: IROM:internal rom 内部ROM,指的是集成到SoC内部的ROMIRAM:internal ram 内部RAM,指的是集成到SoC内部的RAMdram是动态内存,需要周期性的充电 轮询就是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 个小块).
一般Non-SDK,是基于事件驱动的编程模型: 事件就是两个物体之间产生了交互行为,就可以成为一个事件。而事件驱动就是两个之间产生了交互行为,驱使两个物体的一方,做出了相应的行为或动作。 本来还能写,但是马上就12点了,下篇文章继续了。
今日小区靓鸟 |
|