[STM8] 求助高手STM8S105 中断问题

[复制链接]
3501|5
 楼主| ajiantc 发表于 2011-2-24 14:21 | 显示全部楼层 |阅读模式
我用每转8个脉冲的码盘触发STM8的外部中断PD2,然后在中断程序中捕捉定时器的技术数值,并做一次减法计算,定时器溢出有一个累加值。但是结果是发现测出来的速度有抖动,进一步发现定时器溢出的累加值不对,要不多1,要不少1。怀疑是STM8S105单片机中断耗时的问题,但是按理来说CPU16M运行,中断程序中只执行捕捉,做差,标志位,应该很短时间,不同的中断影响很少才对。以前用Atmega8就没有这样的问题!求助高手。。。解释
32446975 发表于 2011-2-24 21:14 | 显示全部楼层
你试一下STM8的输入捕获模式。
 楼主| ajiantc 发表于 2011-2-25 09:09 | 显示全部楼层
2# 32446975
谢谢,我昨晚把中断程序中的库函数都去掉了,改成自己寄存器赋值,结果 居然好了,,,双路码盘正常!也不知道什么原因。
香水城 发表于 2011-2-25 10:14 | 显示全部楼层
2# 32446975
谢谢,我昨晚把中断程序中的库函数都去掉了,改成自己寄存器赋值,结果 居然好了,,,双路码盘正常!也不知道什么原因。
ajiantc 发表于 2011-2-25 09:09


估计是中断中程序执行的时间太长了,影响了下一次中断的处理。
火箭球迷 发表于 2011-2-25 10:20 | 显示全部楼层
有可能
hzj8300 发表于 2011-2-27 21:57 | 显示全部楼层
用库函数所以执行的时间肯定是比直接操作寄存器要长,因为它的库里面穿插了后几层结构。况且在中断里面执行时间以最快为佳。没操作什么复杂的外设一般都不要用库函数
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

6

帖子

1

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