本帖最后由 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分频),一切问题都仿佛根本不存在了,超级奇怪的现象。 |