发新帖我要提问
12
返回列表
打印

一定是我太菜了,用STC老出诡异的问题(后面有图)

[复制链接]
楼主: ff8zgs
手机看帖
扫描二维码
随时随地手机跟帖
21
jt4117| | 2012-8-12 12:13 | 只看该作者 回帖奖励 |倒序浏览
把TH1 和 TL1 的赋值 顺序对调下试一试。
先给TL1赋值,在给TH1赋值。

使用特权

评论回复
22
cjseng| | 2012-8-12 22:17 | 只看该作者
楼主要有资源的概念,很显然,你的单片机是在超负荷工作了,类似于电脑的CPU使用率为100%了。
当然,不是说单片机的处理能力不够,而是你的程序架构有问题,白白浪费了CPU时间。IIC读写和液晶显示都是非常占用时间的,你应该在时间上把这两个函数错开,不要互相争夺资源。
你的每一段程序,也许都是正确的,但是整个程序的逻辑可能是混乱的。

使用特权

评论回复
23
ff8zgs|  楼主 | 2012-8-14 16:40 | 只看该作者
本帖最后由 ff8zgs 于 2012-8-14 16:51 编辑

22# cjseng 非常感谢 你的建议,我确实不是太理解。mcu他是一直都在运转的也停不下来的,这个负荷是个什么样的概念呢?关键是我怎么知道mcu负荷情况,然后是你说的把IIC和显示错开,这个不是很理解。我当前是IIC测试回数据后转换再显示 不知道 怎么错开。望指点

使用特权

评论回复
24
3htech| | 2012-8-14 17:05 | 只看该作者
从你叙述的看来,有可能焊接有问题。(换上来再换下去又没事)
可以看看你的全部代码么?

使用特权

评论回复
25
ff8zgs|  楼主 | 2012-8-14 17:36 | 只看该作者
24# 3htech 我上传个附件吧
你下载 帮我看看 ,我基本都有注释的。帮我看看 结构上有没有什么欠缺的
谢谢

使用特权

评论回复
26
cjseng| | 2012-8-15 01:16 | 只看该作者
22# cjseng 非常感谢 你的建议,我确实不是太理解。mcu他是一直都在运转的也停不下来的,这个负荷是个什么样的概念呢?关键是我怎么知道mcu负荷情况,然后是你说的把IIC和显示错开,这个不是很理解。我当前是IIC测 ...
ff8zgs 发表于 2012-8-14 16:40

我认为你要把主要的模块分别测试一下运行时间,比如display通常需要多长时间,IIC读写一次需要多长时间。程序肯定是无限循环的,循环一次周期是多长?假如在一个周期内,需要刷新显示一次,读写IIC一次,看看时间够不够?假如每次时间都不够的话,你的定时中断差不多就是个摆设。当然偶尔一次超过周期是不要紧的。
我的建议是:液晶显示,刷新太快了也没用(肉眼看不清),半秒到一秒刷新一次足够了,IIC读写也尽量不要太频繁。比如,数据有变化了,再刷新显示,没有变化就不需要每次都刷新。
如何测MCU负荷,简单的办法是:MCU在等待的时候,将某一个管脚拉低,MCU在处理任务的时候,将管脚置1,用万用表量一下这个管脚的电压,电压越低,MCU负荷越低,反之越高。当电压与电源电压一致时,可认为MCU负荷是100%。

使用特权

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

本版积分规则