首先,先讲一下我编写代码的流程(后以此为例,不再重复):
无论是省赛还是国赛,都会发现数码管显示及矩阵按键是必不可少的,所以我的第一步是还原动态数码管的内容,通过给org数组赋值,让数码管显示我想要显示的内容。确保这部分无误后,还原矩阵按键模块,通过按键改变org数组内的内容,改变数码管显示,如与预期相同,在进行下一步。我对我完成这道省赛的时间做一个展示,希望能对你起到帮助。
分析题目,是否需要数码管和矩阵按键 | 约2分钟 |
让数码管显示1234.5678 | 约20分钟 |
通过矩阵按键改变数码管的显示内容 | 约20分钟 |
阅读题目,理解系统需求 | 约10分钟 |
针对S4按键,修改模式标志 | 约2分钟 |
针对S5按键,修改时间,开启倒计时(完成编写后出现两个BUG:1.逻辑错误,时间直接从0变为2分钟,从未出现1分钟的显示 2.修改完1问题后矩阵按键按下一次识别多次,加入delay降低识别速度) | 约30分钟(大部分为修改BUG) |
针对S9按键,完成清除时间功能 | 约2分钟 |
完成不同模式下的LED灯亮灭(完成编写后出现一个BUG:LED等有闪烁现象,原因经分析为中断抢占P2的使用。这个问题我从底层分析,说起来容易,实际上很多人根本找不到原因,必须要很理解原理,不断临时废除部分代码才能找出,具体内容我们下面再说) | 约40分钟(绝大部分为修改BUG) |
完成PWM输出(此处还增加了LED,因为周围没有示波器,又要现象可被观察) | 约15分钟 |
针对S8,增加温度模块(完成编写后出现一个BUG:按键有失灵的情况,经过分析,读取温度在delay参数的控制之外,又放慢了矩阵按键的识别速度,我选择让读取温度在delay参数的控制之内) | 约30分钟(大部分为修改BUG) |
再次审题,检测修饰功能(比如count=0这样的小细节, |