打印

内部16.6Mc振荡器对I/O口操作的影响。

[复制链接]
1933|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Cortex-M0|  楼主 | 2012-1-26 11:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Cortex-M0 于 2012-1-26 11:19 编辑

曾经,将N年前的汇编程序,移植到89F52中,发现使用内部16.6Mc振荡器,1分频时,对键盘输入的个别位键值,不能正确判断。

程序结构:
便用最低级500us定时中断,扫描段位LED显示器的同时,读入键值(键盘输入口和段位扫描输出口之间加接串1N4148隔离的按键)。

但将内部16.6Mc振荡器,用2分频或4分频时,又一切正常。。。。原因不详。
用过ATMTL的,STC的,华帮(芯唐)的,均未发生过此类现像。

这几天过节,又将程序翻出来改写成C格式,依旧有此现像。且又发现一个新现像,如打开更高级的中断,则最低级500us定时扫描中断,对键盘输入的个别位键值,设别率变的更差,更低,在键盘输入口读入之前,加N个延时也没用(防止1T MCU内部流水线操作,输出I/O未及时翻转更新),故障依旧,只有不用内部16.6Mc振荡器,1分频时(随便设置2分频,4分频),一切问题都仿佛根本不存在了,超级奇怪的现象。
沙发
ephzq| | 2012-1-26 16:50 | 只看该作者
可能你的程序的延时不对吧。人家的时钟,你不会用吧

使用特权

评论回复
板凳
bananarer| | 2012-1-29 12:41 | 只看该作者
外接一个16M crystal,1分频,能行不?我想应该是延时的问题

使用特权

评论回复
地板
缥缈九哥| | 2012-1-29 12:53 | 只看该作者
注意中颖的定时器前面有分频器。另外主时钟也有分频器。

使用特权

评论回复
5
Cortex-M0|  楼主 | 2012-1-31 17:05 | 只看该作者
谢谢LS几位回答,程序是加消抖动的,中颖SH89F52定时器前面没有分频器的,依靠设置主时钟的分频器对时钟降频。根据不同的主频分频比,对SH89F52定时器时间常数也作了相应修改。

使用特权

评论回复
6
Cortex-M0|  楼主 | 2012-2-5 05:33 | 只看该作者
说实话,俺怀疑SH89F52片内定时机制有问题,无法保证在 16.6Mc振荡频率下,支持对IO口可靠读取信息。俺用的版本是SH89F52D, 也没时间去测试分析,降频后凑合着用吧,结贴。

使用特权

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

本版积分规则

个人签名:学习chunyang和maychang两位老师,努力练好基本功。 学习HOT大叔,学好“Cortex-M0”,做“Cortex-M0”之菜鸟。

7

主题

4820

帖子

12

粉丝