打印

关于液晶屏不刷新数据的问题,

[复制链接]
1722|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
光阴似剑|  楼主 | 2008-9-7 11:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的一个仪器功能如下:
1.将现场的两路信号用AD采集过来后显示,显示方式为两种方式(单位不同,所以需乘个系数。)
2.将外部中断的脉冲个数累加起来显示,在断电时保存,在上电后读出来继续累加,并且将其脉冲频率显示出来。
我的程序结构如下:
void main()  
{
.....     //初始化部分
.....
while(1)
  {
 AD_data1(); //第一路AD采集值;
 AD_data2(); //第二路AD采集值;
 Display1(); //显示第一路现场数据A;
 Display1_1(); 
//第一路现场数据B,数据B是在数据A的基础上乘个系数如(1.25);
 Display2(); //显示第二路现场数据B;
 Display2_2();
//第二路现场数据B,数据B是在数据A的基础上乘个系数如(1.42);
 Sendout();//根据时事数据控制外部指示灯和继电器;
 Display3(); //显示外中断的脉冲数;
 Display4(); //显示外中断的脉冲频率;
  }
}
void pulse_int0() interrupt 0  //中断处理函数
{
  pulse++;                   //将脉冲数累加;
  write_24C02(10,pulse);      
//将脉冲数存入存储器中,频率很低,3~4次/秒;
}
由于现场将此仪器放在一个750KW的发动机旁边,仪器在运行一段时间后,大概40分钟,所有显示数据会出现不刷新现象(所有显示数据都不变化了),断电后,数据显示正常,但发现中断函数一直在运行,因为断电后读出数据时数据并不是不刷新的数据,等运行一段时间后,还会出现如此问题。三台仪器有两台出现过次问题,另一台运行两个多小时后未出现过不刷新现象.
我现在的疑问是液晶屏不刷新造成的此现象还是程序跑飞造成的次现象,由于没有办法模拟现场实验,所以请大家帮助分析应该怎么解决,谢谢!




相关帖子

沙发
光阴似剑|  楼主 | 2008-9-8 09:24 | 只看该作者

高手帮助分析分析,谢谢!

使用特权

评论回复
板凳
原野之狼| | 2008-9-8 09:29 | 只看该作者

可能是液晶的问题

你的液晶的复位信号是怎么给的?
最好是采用软件复位的形式,并且隔一定周期后再去重新复位液晶。

使用特权

评论回复
地板
农民讲习所| | 2008-9-8 09:31 | 只看该作者

write_24C02(10,pulse);放到外面

如果中断和循环中都使用该函数,基本上会死翘翘。

使用特权

评论回复
5
农民讲习所| | 2008-9-8 09:32 | 只看该作者

中断是只处理实时任务的,这点一定一定要坚定信念。

使用特权

评论回复
6
原野之狼| | 2008-9-8 09:42 | 只看该作者

农民伯伯说得对

在中断中,最好使用事件或者缓冲来处理一些事情。

使用特权

评论回复
7
machunshui| | 2008-9-8 09:47 | 只看该作者

可能性更大是液晶模块死机了

可能性更大是液晶模块死了.

可以在每次数据刷新前,都对液晶模块复位.

使用特权

评论回复
8
光阴似剑|  楼主 | 2008-9-8 10:41 | 只看该作者

我用的是RC复位,农民伯伯说放在外面是不是在中断

中放个标志,在循环程序中再写?循环函数中不会用到write_24C02(10,pulse)这个函数,只是在重新上电时在初始化函数中要读一下,我现在用的是硬件复位,这样的话在每次数据刷新前,又怎样对液晶模块复位啦?

使用特权

评论回复
9
原野之狼| | 2008-9-8 10:43 | 只看该作者

飞线,先把问题找出来再说。

使用特权

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

本版积分规则

6

主题

17

帖子

0

粉丝