|
|

感谢大家百忙之中翻阅此贴!请允许我介绍一下前几期作品1.自制手持示波器:http://bbs.mydigit.cn/read.php?tid=863191 2.拆解1GHZ示波器:http://bbs.mydigit.cn/read.php?tid=646219 3.自制黑白示波器:http://bbs.mydigit.cn/read.php?tid=5199463.打造全网最帅智能烙铁:http://bbs.mydigit.cn/read.php?tid=891440 最近在捣鼓一个小玩意儿 ,结果发现了一个问题是屏幕有一个片段区域不显示数学文本.即便是显示 也是特定位数 和特定的位置很郁闷 捣鼓了一个下午都失败了 晚上不经意间发现了bug所在 非常惊喜 所以 献上个人经验心得! 首先看上图,这是进制输出方法中的一段代码我们知道一英文字体的标准大小是 8*16,,(缩放其他字号不算)window是tftf液晶驱动的开窗方法!xy参数表示起始坐标,wh表示宽度高度!图中 确定window的大小应该是比如说123456,有六位数字那么c应该是6,这时 window的第三参应该是c*8才对,右边的h写的是16 但是为毛左半边的代码长度是c*x,而不是c8???? 该bug造成的程序现象如下(测试环境STM32/开发语言 /C艹 /全局寄存器)现在问题终于解决 这段代码 我写错了 c*8写成c*x 我居然傻*逼兮兮的用了半年都没发现这个问题 刚刚要不是调试出错 我还一直发现不了 今天搞了一下午了 刚刚边聊天边看码然后恍然一看 找到答案了原来是自己太粗心大意了 翻开大半年前的代码 当时用的是c编写的 后来全部强制用c艹编程语言进行重写 很多代码看上去不自然上述黄色方框是出bug语句, 红色方框标注 错误点!,这些都是陈年老码,我用了大半年居然都没发现这个问题,一直当api来用! 上图右下角蓝色方框是 一个进程runtime用来实时系统时间 位代码提供时间参考量的,,但是我把它写在红色区域 他就不能显示了,,我当时纳闷 为毛左边的数学值能显示 右边的数学值部分框框的数学值却不能显示可是越过了一段区域数学值又能显示 把我逼疯了 最后仔细跟踪 查看各个函数节点方法节点 中遇到到 罪魁祸首的代码了 再次提醒各位 1.千万别过于自信(当出现问题的时候首先反省自己)2.千万不要马虎(程序编写初期代码是最好管理的 因为码量小而且刚写出来的程序 人的思维比较清晰,时间久了 我都连自己写的code都忘了)3.千万不要躲避bug,(我承认我差点犯错了,我后来的想法是把这个小显示区域移动到”光刀位置”的地方 就行了 后来我发现这样我错了!)4.千万别急躁(当解决不了问题的时候 干脆陪大家一起聊聊天开心一下,没准心情好了 一晃眼就看到bug了,一件事情做多了经验就自然出来了,)单片机技术交流群祝大家编程顺利!
代码就像滚雪球 越来越大 不好管理了 风风格也越来越杂乱了 虽然表面上统一实际上处理逻辑较为杂乱,提醒大家编程的时候框架结构一定要深思熟虑! _______________________________________________________________________________________________
|