今天是21年的双十一星期四,完成了程序框架,接下来进行按键调试、送显
之前的几天在写按键程序、包括了解24c02、开关机、背光、设置、存储等模式的编写
中间帮同事也调试了AHT20读取温湿度数据,数据有变化,但是最终都是同样的结果,原来是中断开启,影响到数据读取和计算了。
1.按下按键,没反应:按键扫描函数没放在主函数里
2.按下仍无反应:没给按键初始化,给它一个初始化函数
3.仍无反应:无中断,无标志位进入模式
后续再更新
242c02多位写的边界问题(以连续写两个5位举例):
从00H开始写,写到04H(第一个5位写入),再从05H开始写,写到09H(第2个五位写入),这是不可以的,因为跨过08H,也即每次不能超8位
从00H开始写,写到04H(第一个5位写入),再从05H开始写,写到07H,移动写入地址到08H才能继续写,从08H再写到09H(第2个五位写入),这是可以的
11月22
项目情况:
1、周一编写完成剩下的10%的按键程序。
2、周二上午画工程图,下午调试程序:上电运行一段时间后程序进入关机模式,调试发现因为IO寄存器配置错误导致按键通电后都是导通状态,配置好后仍进入关机模式。
3、周三上午继续调试修改一些参数,仍是进入关机状态,14:25发现状态码宏定义没有和相应模式对应,修改后解决。继续调试发现按键按下寄存器检测到高亮,但是没有执行相应按键服务程序。
PT1.4寄存器没有反应,发现是初始化配置错误,按键扫描时没改过来相应的值,定义时直接对变量操作等原因,修改后可以检测到PT14。
按键按下仍无反应,溯源发现送显函数导致按键值变了,回到送显函数查看是缓存数组没有给定长度,影响到按键变量的地址,操作了同一个地址的值。
4、周四早上用逻辑分析仪读取IO高低电平变化,发现进入主程序时间片不对,是由于主程序里延时1S,去掉延时后时间片变80ms。
下午继续调试按键,由于按键计数初值错误导致按PT10没有关机,改完后可以关机,关机后开不了机是由于关机时关了中断,开机后中断没开启进不到主函数。现在实现关机开机各一次,但再关就不行,调试发现是每次开机后都进入外部PT10中断,开机后清除掉PT10的标志位后即可。
5、周五修改24c02和存储函数,IIC通讯没有建立。
11月30
项目情况:
1、逻辑分析仪抓取IIC波形无起止信号(软件没有开启IIC分析);普通模式下调取存储数据送显(没有处理好状态码和模式调用)。
2、修改发送前数据的移位处理,读取24c02数值不对(送显数据类型不匹配);存储个数计数不对(送显LCD地址错误);周二16:00实现数据存储调取查看,但在存储个数后的数据也可查看且都是溢出值;存储次数多以后数据溢出。完善硬件电路,实现背光控制。
3、周三15:00设置按键调试完成(状态机和按键逻辑不对),符号残留(LCD缓存没有清空),调试过程中存储数据功能失效(状态机和按键逻辑不对)
4、修改逻辑后,存储模式和普通模式切换不了(存储按键短按时,长按标志位没有清零),模式切换符号跳变(LCD缓存没有清空)。实现数据保持。进不到湿度报警(标志位放错位置)。
5、早上完成按键测量、数据保持功能,下午14:30完成报警功能;存储数据错误,满50组后会清空重存,但掉电重启后数据没有清空。
12月6
项目情况:
1、24c02存储的数据上电后显示有43组,再存储数据送显不对,存满50组后重启显示的数据仍是43组,再存储数据和之前数据一样,也即从43组后的数据没有写进去(存储个数不对,导致最大存43组)
2、换新24C02调试存储模式,擦除后重存及读取正确,调试HOLD符号跳变(LCD缓存变量没有清零)。调试Normal模式(大小值测量逻辑不对)。返回普通模式按键异常(多重ifelse判断,时间片影响)
3、调试完成Normal模式。新24C02存满再继续写数据错误(24C02地址错误,写入时空出一个地址,导致写标错误)。Buzzer不断开关(判断逻辑不对)。
4、标志位串位(标志位超出结构体共享内存)。调试蜂鸣器(标志位超出结构体共享内存,标志位打错),判断不满足时蜂鸣器异响(温湿度判断条件互换,判断条件else情况缺少)。存储数据仍错误,写标重新上电后减1(最后的写标没存进24c02)。
5、完成存储模式,除低电指示外的功能全部完成,写低电指示功能。
项目情况:
1、存储、设置模式下按PT1.0返回不了普通模式(外部PT1.0中断在开机后没有关闭),结束温湿度计项目
2、DM2100L原理图绘制、硬件搭建完成。软件功能框架搭建中。