[STM8] 关于ST8S207的捕捉问题

[复制链接]
3583|8
 楼主| kuailebuyi 发表于 2009-6-25 21:21 | 显示全部楼层 |阅读模式
三合一开发板上其中一个KEY与TIM1_CH4连接
用KEY来产生一个脉冲信号,来试验TIM1的捕获功能,但始终读不出捕获值。
程序如下:
TIM1_CCMR4 |= 0x01;//引脚选作输入
TIM1_CCER2 |= 0x30;//下降沿有效
TIM1_CCR4 = 0x00;
TIM1_PSCR = 0xffff;//最大分频
TIM1_CR1 |= 0x01;//启动TIM1
While((TIM1_SR1 & 0x10) |= 0x10);//查询捕获中断标志位,(调试时,提示程序死在这一句)
M = TIM1_CCR4;//读结果
TIM1_SR1 & = ~0x10;  //清标志位

换成中断来做也不行,为什么?
汉之云 发表于 2009-6-26 10:02 | 显示全部楼层

re:

While((TIM1_SR1 & 0x10) |= 0x10);//查询捕获中断标志位,(调试时,提示程序死在这一句)

至少里面 "|" 应该是"!".
 楼主| kuailebuyi 发表于 2009-6-26 16:08 | 显示全部楼层

re

While((TIM1_SR1 & 0x10) |= 0x10);//查询捕获中断标志位,(调试时,提示程序死在这一句)

至少里面 "|" 应该是"!".

这里“|”是打错了,在实际程序中是“!”

现在的问题是,再按下KEY后,捕捉中断标志位没有置 1
请高手帮我分析分析

谢谢
walnutcy 发表于 2009-6-27 20:01 | 显示全部楼层

IO 对应的IO设置成输入了没?

zz2513 发表于 2009-6-28 09:37 | 显示全部楼层

时钟源

还有一个很重要的问题: TIM1的预分频时钟源 为内部时钟(Fmaster)的话,需要设置相关寄存器吗 ? 

我总觉得是 时钟源不对。

高手赐教啊   
 楼主| kuailebuyi 发表于 2009-6-28 13:17 | 显示全部楼层

问题已解决

为TIM1_EGR没有配置
谢谢各位的指点
zz2513 发表于 2009-6-28 14:31 | 显示全部楼层

太好了

我今天在办公室里调试了下TIM1的PWM输出,也调出来了。 也是有寄存器没设置好。根本不是时钟源的问题。 

 

371388224 发表于 2009-7-6 18:08 | 显示全部楼层

请教TIME问题

各位兄弟:
    我在调试TIME的时候,也碰到了类似的问题,While((TIM1_SR1 & 0x10) |!= 0x10);//查询捕获中断标志位,(调试时,提示程序死在这一句),请各位具体指教一下为感。
ddllxxrr 发表于 2009-8-29 15:51 | 显示全部楼层
是否就支持第一道,和第二道呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

0

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