小弟最近遇到一个比较困扰的事:
我用IO模拟时序驱动一个类SPI接口的芯片
每通讯一字节都要等待busy,大概2ms左右吧;
我发几条长指令的话,几十上百毫秒就浪费掉了。
如果以前用51,我就直接Delay();了
但是现在STM32 72MHz的主频,如果Delay就直接被浪费掉了,不绿色、不环保、不和偕、不能可持续发展啊;
感觉自己到了瓶颈:片内外资源越多,对资源的掌握就越差……
能不能调用一个函数,函数中需要delay的地方就自己跳出去干别的,等时间到了再回来?
想了想:用状态机,函数指针数组,switch case这样,需要放在循环中调用n次才能执行完一个命令;
而且带来重入等问题……
用操作系统?没接触过,移植等麻烦事就来了~
而且自己“裸奔”还操作不到位,比较迷茫呢,用系统估计迷茫的事情更多……
各位大佬给我出出注意吧,小弟先谢过了~ |