看到很多新手写程序,动不动就delay(1000),delay(10000)。当年鉴鹰也是这样过来的,程序只要能实现功能就心满意足了,也不会考虑到整个系统的实时性。在做实时性比较高的项目的时候,绝对不允许用纯延时等待的。
比如,我要程序用500ms 执行一次主程序,下面是一个简单的程序,是原来大学刚毕业的时候,当时跟我一块去公司的一个同事写的一个程序,当时老是出现按键失灵,按过之后没有反应。后来我看过程序之后,发现这是一个很低级的错误,也发现了同事一个小白。
我们来分析这个程序:delay(uint ms)函数,当形参为1 时,则延时1ms,所以delay(1000)则对应延时1000ms,主程序里面调用了的delay(uint ms)函数的延时时间最少我1030ms,如果按键按下的时间比这个时间短的,单片机是来不及检测的按键的,所以这个程序是有BUG的。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !