一位护士问临终的病人,他们有什么遗憾,她后来总结出了5个最常见的回答:
- 不要忽视梦想;
- 不要工作过久;
- 说出想法;
- 交朋友;
- 要开心。
独立开发,自由职业
一位护士问临终的病人,他们有什么遗憾,她后来总结出了5个最常见的回答:
为了技术选型,又整了 STM32 开发板。性能要比一般的 Arduino 板子强很多。而且,神奇的是,价格还更便宜,啧啧。
问题是,性能强的代码是功耗高。基于 STM32F103C8T6 的板子空载功耗大概 19mA,基于 ATMEGA328P 的 Arduino Pro mini 是 9mA,是后者的两倍多。休眠功耗都比较低,倒也没差这么多。
不过,这样的功耗是芯片 + 开发板其他元器件合计的,比如一个 LED 灯可能就有 1mA,所以只能做大致参考。不过,这差别还是有点大的。
低功耗时遇到一个问题:如果掉电休眠,则时间无法继续,唤醒后的时间就不对了。
而我要面临的使用场景,是需要知道大致时间的。
一种办法,就是引入 RTC 实时时钟模块,掉电可以使用钮扣电池供电,继续走时。可是,这种模块为了添加钮扣电池,板子都比较大。
还有种办法,就是利用 WDT 看门狗定时触发的机制,累积休眠时长。等最后唤醒时,加上这个累积时长,就能换算出大致准确的时间。
本来,我还想完善下细节,比如在休眠中途被其他方式唤醒时,需要进一步校正这个休眠时间。可是,太复杂了。最后,用了个简单的办法解决:累加每次开始休眠时,加半个休眠时长。这样,可以对冲中途休眠的情况,明显改善结果。
收到 Arduino Pro mini,比想象中更小。自己焊了引脚,还改进了 usb ttl,开心。
Arduino 给力。之前给 Uno 写的代码,可以直接刷到 Pro mini 板子上,接口也完全一致,开心。