当我把程序下到单片机中去,能够正常工作,显示符合常理,但是过5分钟左右,显示一个奇怪的数字,并且停在那里,在也不响应外部传感器的输入变化。经过多次试验,每次都是停在同一个数字。这版程序同第一版程序架构基本一致,第一版没什么问题。这里只不过加入了eeprom的读写。这个是不是不能频繁的读写啊?
主函数如下
void main()
{
InitCS1180();
while(1)
{
KeyScan();
MenuItem();
CalcWeight();
WeightDisp();
}
}
函数MenuItem();的一开始对eeprom进行读,这里读到是一些参数。然后把在该函数中的适当位置进行调整参数,最后把调整好的参数存到eeprom。在CalcWeight();
再次读参数,这些参数有各个通道的系数。WeightDisp();函数中继续读参数,这里的参数有显示分度值,小数位数,零点给总值等,然后根据上面计算出的总重显示出来。
当出现停下后就在也进不到MenuItem函数中去了,因为我想按键调整参数都进不去菜单设置了,程序好像一直停在WeightDisp();。停的数子也不解,在传感器输入不变的情况下,刚开始显示33.1左右,停却停在-7.3. 请大家帮我看看问题出在哪里?
我的这个项目类似电子称,大家能给个大致的写程序的框架吗?这里主要有2部分,就是菜单的设置,这里面设置相关参数,剩下的就是根据参数进行计算重量和显示。谢谢大家 |