打印

好像程序跑飞了?????

[复制链接]
6189|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
victor3l|  楼主 | 2012-7-2 23:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当我把程序下到单片机中去,能够正常工作,显示符合常理,但是过5分钟左右,显示一个奇怪的数字,并且停在那里,在也不响应外部传感器的输入变化。经过多次试验,每次都是停在同一个数字。这版程序同第一版程序架构基本一致,第一版没什么问题。这里只不过加入了eeprom的读写。这个是不是不能频繁的读写啊?
主函数如下
void  main()
{
InitCS1180();
while(1)
{
  KeyScan();
  MenuItem();
  CalcWeight();
  WeightDisp();
}
}
函数MenuItem();的一开始对eeprom进行读,这里读到是一些参数。然后把在该函数中的适当位置进行调整参数,最后把调整好的参数存到eeprom。在CalcWeight();
再次读参数,这些参数有各个通道的系数。WeightDisp();函数中继续读参数,这里的参数有显示分度值,小数位数,零点给总值等,然后根据上面计算出的总重显示出来。

当出现停下后就在也进不到MenuItem函数中去了,因为我想按键调整参数都进不去菜单设置了,程序好像一直停在WeightDisp();。停的数子也不解,在传感器输入不变的情况下,刚开始显示33.1左右,停却停在-7.3.   请大家帮我看看问题出在哪里?
我的这个项目类似电子称,大家能给个大致的写程序的框架吗?这里主要有2部分,就是菜单的设置,这里面设置相关参数,剩下的就是根据参数进行计算重量和显示。谢谢大家

相关帖子

沙发
3htech| | 2012-7-3 09:04 | 只看该作者
EEPROM 写入次数有限制。
你把EEPROM写函数弄成空函数,然后看看是否会出问题。

使用特权

评论回复
板凳
原野之狼| | 2012-7-3 09:14 | 只看该作者
debug要靠自己啊
当然 实现掌握一定的方法很重要
否则 这样子目测然后连蒙带猜 是很难找出bug的
给几个关键字去搜索一下吧  assert  trace  log

使用特权

评论回复
地板
dlyt_test001| | 2012-7-3 11:03 | 只看该作者
没有看门狗吗!怎么会停在那。

使用特权

评论回复
5
victor3l|  楼主 | 2012-7-3 15:40 | 只看该作者
3# 原野之狼

谢谢您

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

77

主题

308

帖子

5

粉丝