今天的话题,从一个聊天记录开始
Q群里面有小伙伴@小代,大概意思是他写的数码管显示程序有问题,有鬼影(其实就是不该亮的那些段有微微的亮影)。后面还贴出来显示部分的代码,眼睛一票,没发现问题,仔细一看,源程序在段选码和位选码之间加了一个延时,正常情况下的数码管显示程序是段选和位选都送完后再加延时,小代用大脚趾一想,问题应该在这,就在群里告诉了修改办法。
大大的尬
尬
因为改完还是一样的,没效果,小白病急乱投医,又在switch里面加了个循环进去。还是没效果。
为了不打扰群里认真学习的小伙伴,小代叫小白私聊发完整代码来看。不看不知道,一看吓一跳。显示部分没得什么大问题,看到定时器计算时间数据时候着实的吓一跳啊。小白用的一个Uint的变量去记录时间的秒数,最终的时分秒都是通过这个变量计算得到。这样的写法小代还是第一次看到,不知道是老师教的好还是小白学的好。因为显示部分没发现问题,小代把显示的数据改成直接显示123456这样的数字,把HEX文件发给小白叫他下载程序完后拍照给我看效果。
效果杠杠滴
显示的没得大问题,只是最后一位的位置错了,没有再有什么鬼影了,所以证明了显示不正常的原因并不是显示程序的问题,而是显示数据在计算时候的问题。
小代没那么草率,为了验证小代的这一大胆的猜想,小代决定把这程序写完,反正也不是难的事,就加两个变量,在定时器里按照时间正常的秒分时的数据计算一下就好了,最后把显示数据改成新申明的时间变量。
哒
哒
哒
几分钟过去了,代码敲完,编译没问题,直接发HEX给小白验证。
一次通过
此处应该有掌声,掌声只有你能听见,小代希望看到此处的小伙伴点点转发分享外加在看。
因为程序涉及到小白的东西,所以在此就不做分享,小代只贴出定时器部分。
·END·