接下来就是写程序了,遥控器程序: OLED第一次用,找卖家要来Demo程序,是STM32的,我这里用的是51,不能直接用,用查找替换的方法,将所有GPIO的操作改成51的直接赋值操作,再将Delay()函数重写了一下,编译通过了。
接收器程序: 程序写得昏天黑地,不知有汉,无论魏晋,老婆给我买的两条烟很快见了底,8月中旬,程序VER1.0诞生。 接下来就是测试,各种测试,排雷,很快的,一个星期过去了。 这中间已经发现,主机通讯程序有问题,经常会挂掉,跟对方沟通无果。详见https://bbs.21ic.com/icview-3164974-1-1.html。 这时候,发现了一个严重的问题,我测试用的STC15W4K32S4芯片,买不到了!!!家里只有几片库存的样品,不够生产用。 真是屋漏偏逢连夜雨啊! 换芯片!我买买买,买来IAP15W4K61S4,试了下,不好用。没时间排查原因了,继续买,又买来IAP15W413AS,试了下,还是不行。我再买,买到STC15W408AS,好,这下妥了!程序能跑起来了。 但是,我这里要说个但是,板子上几个按键失灵了!详见https://bbs.21ic.com/icview-3156032-1-1.html。 STC15W408AS没有P0口,那几个引脚是空的!!! 我改!我改原理图,重画板子,不用P0口了。因为时间来不及,改好板子,也不打样了,直接下单100PCS。 板子改了,程序也得改。 说起来,世上就没有一帆风顺的事,因为换了408AS芯片,只有8KROM,可我的程序改来改去,还有11K大小。。。 将代码优化等级提到最高,优化后还有9K多。唉,OLED的显示界面太占程序空间。改改改,继续折腾程序,我感觉头发越来越少了。 能复用的代码尽量复用,砍掉各种调试用语句,在switch和if之间各种权衡对比,最终程序被压缩到8189字节,是不是很神奇?还差3个字节就满了。 老天不会遂人愿的,把这8189字节的程序烧进芯片,程序时不时出问题。看芯片手册,明白了,程序空间最后7个字节不能用,是用来存放芯片唯一ID的。 没办法了,只能阉割一些功能了,我把电池电量显示从5级改为4级,一下子节省了几十个字节的空间,感觉好爽。图标点阵数据都是实实在在占空间的啊。 这样,就有了Ver2.0版本程序。 眼瞅着快到交货日期了,我这边还有其他活没干完,得抓紧。 第一个活就是,遥控器贴膜要赶紧订做了,否则来不及。
放下程序,开始画贴膜。用CAD确定尺寸,用Photoshop填充颜色,发给不干胶贴膜厂家制作贴膜。 第二件事,就是遥控器、接收器壳子开孔,又是各种画图,画好图纸,生成雕刻文件,交给雕刻机干活。
这是个大活,不大好整,这不是咱专业啊。 弄成了这样样子,还好,按键位置都很准确,毕竟用的同一个CAD文件定位的。
接收器的壳子开孔更麻烦,一开始脑子有点短路,画板子时,竟然设计了三面开孔,唉,悔之晚矣!
第三件事就是,壳子开好孔了,但是只有一套,如果要批量开孔,每次定位就是个麻烦事。咱还得做个工装夹具。继续埋头画图,脑子里各种乱七八糟的想法,最终做了这样个东西,上下左右全都卡死,只需定位一次,雕好一个,换下一个不用重新定位了,样子丑了点,但胜在实用。
|