前段时间在做比赛时候用到了TM1637数码管显示模块,本想着项目编程比较简单,图形化编程足够能实现,为了偷懒就采用图形化编程方式实现,才开始就翻车,翻车现场往下看。
如上图,简单的显示测试程序就是翻车现场。本想着用定时器1秒钟产生一个中断,中断里让变量自加1,循环程序里只有一句显示TM1637模块直接显示12:30,然后从串口把变量打印输出。而得到的打印效果如图所示,每两秒钟才有一次打印。也就是说,循环程序中的两条语句的执行时间是2秒钟左右,串口打印模块执行时间是非常快的,大家可以用直接打印的方式测试。这样一来就是说TM1637驱动显示模块的执行时间快接近2秒。
这样的执行速度肯定不是我们想要的,接下来我们就刨根问题找原因。根据米思齐编程右侧代码窗口中显示,以上图形化编程中调用了SevenSegmentTM1637.h和SevenSegmentExtended.h头文件,那我们就从这两个头文件查起。在:Mixly_WIN (2)\arduino\portable\sketchbook\libraries\SevenSegmentTM1637路径下找到了以上两个头文件,打开对应的C++库文件,SevenSegmentTM1637.cpp库文件代码行数515行,SevenSegmentExtended.cpp代码行数91