c8051f340出现灵异事件

[复制链接]
 楼主| xbyu520 发表于 2014-5-8 11:22 | 显示全部楼层 |阅读模式
f340触发内部adc转换,用内部T2定时器定时触发ad转换,不管如何更改T2值。进入ad转换中断服务程序的时间是一样的,这是怎么回事呢?各位高手来看看,这个很奇怪。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| xbyu520 发表于 2014-5-8 11:31 | 显示全部楼层
TMR2RLL   = 0x00;       
TMR2RLH   = 0x00;
TMR2L     = 0x00;         
TMR2H     = 0x00;

TMR2RLL   = 0xff;       
TMR2RLH   = 0xff;
TMR2L     = 0xff;         
TMR2H     = 0xff;
进入中断的时间是一样的。led都是65.6ms去反一次。(示波器测量的结果)
 楼主| xbyu520 发表于 2014-5-8 11:32 | 显示全部楼层
用了内部12M和外部12M晶体都是一样的结果
ayb_ice 发表于 2014-5-8 12:29 来自手机 | 显示全部楼层
仔细看手册
 楼主| xbyu520 发表于 2014-5-8 13:14 | 显示全部楼层
ayb_ice 发表于 2014-5-8 12:29
仔细看手册

手里有f340开发 板。也有f310板子。几乎一样的程序,f310能正常改变,f340不行,这怎么解释???
ningling_21 发表于 2014-5-8 15:03 | 显示全部楼层
xbyu520 发表于 2014-5-8 11:32
用了内部12M和外部12M晶体都是一样的结果

内部12M和外部12M基本相差很小的,肯定是一样的...

你可以试试内部48M,对比一下12M....
ningling_21 发表于 2014-5-8 15:05 | 显示全部楼层
xbyu520 发表于 2014-5-8 13:14
手里有f340开发 板。也有f310板子。几乎一样的程序,f310能正常改变,f340不行,这怎么解释??? ...

你可以试试其它定时器中断触发AD...
 楼主| xbyu520 发表于 2014-5-8 15:09 | 显示全部楼层
好的。我现在就试试看
 楼主| xbyu520 发表于 2014-5-8 15:19 | 显示全部楼层
本帖最后由 xbyu520 于 2014-5-8 15:25 编辑
ningling_21 发表于 2014-5-8 15:03
内部12M和外部12M基本相差很小的,肯定是一样的...

你可以试试内部48M,对比一下12M.... ...

设置如下:

TMR2CN    = 0xd2;       
TMR2RLL   = 0x00;       
TMR2RLH   = 0x00;
TMR2L     = 0x00;         
TMR2H     = 0x00;

换成48M后,用T2触发,示波器测量显示16.28ms.用到内部12M的,然后使能乘法器得到的48。
 楼主| xbyu520 发表于 2014-5-8 15:31 | 显示全部楼层
最新结果,换成T0触发ad   TH0       = 0x9c;
                        TL0       = 0xff;

TH0       = 0x00;
TL0       = 0x00;
结果都是65.1ms
 楼主| xbyu520 发表于 2014-5-8 15:33 | 显示全部楼层
我感觉遇到了“不完全损坏”的f340了
ningling_21 发表于 2014-5-8 15:52 | 显示全部楼层
xbyu520 发表于 2014-5-8 15:33
我感觉遇到了“不完全损坏”的f340了

怀疑芯片,当然可以换一个...
 楼主| xbyu520 发表于 2014-5-8 15:58 | 显示全部楼层
谢谢!手头目前没有这个芯片替代,只有开发板上唯一的一个f340  f310倒是很多片
 楼主| xbyu520 发表于 2014-5-8 16:00 | 显示全部楼层
奇怪了,遇到过flash有坏道。难道ram也有这样的??不解
ayb_ice 发表于 2014-5-8 16:32 | 显示全部楼层
动不动就怀疑芯片可不是好主意

请问你认真对照手册,对照程序了吗

评论

问题虽然解决了,但历经了半天时间。我感觉官方的手册在一些方面描述的不够细致。要靠使用者自己摸索。  发表于 2014-5-8 17:56
yhn1973 发表于 2014-5-8 16:54 | 显示全部楼层
单看TMR2RLL   = 0xff;        
TMR2RLH   = 0xff;
TMR2L     = 0xff;         
TMR2H     = 0xff;
就错了
 楼主| xbyu520 发表于 2014-5-8 17:16 | 显示全部楼层
ayb_ice 发表于 2014-5-8 16:32
动不动就怀疑芯片可不是好主意

请问你认真对照手册,对照程序了吗

仔细看了手册,把  TMR2CN    = 0xd2;这句话去除,这样就可以控制ad触发周期了。间隔长一些触发或者间隔短一些触发都可以了。T2 T3触发算是解决了。可T0触发周期怎么改不了,怎么改都是65.04ms
 楼主| xbyu520 发表于 2014-5-8 17:31 | 显示全部楼层
经过“痛苦的”调试,ad周期和我预想的基本一致了(小误差是有点的,毕竟用的c语言,内部rc也不是完全的12Mhz)。谢谢大家。单片机没坏。
 楼主| xbyu520 发表于 2014-5-8 17:58 | 显示全部楼层
怎么结帖子。一直想给给我帮助的人们分数,可点击结贴经常报错
 楼主| xbyu520 发表于 2014-5-8 17:59 | 显示全部楼层
分数未分配完,或分数分配存在错误!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:工作不养闲人,团队不养懒人。赚不到钱赚知识,赚不到知识赚经历,赚不到经历赚阅历,让人迷茫的原因只有一

43

主题

854

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部