打印
[STM8]

求助,stm8 定时器1捕获的问题

[复制链接]
4027|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
scky333|  楼主 | 2012-9-17 12:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我参考数据手册上的例子进行设置,可以进入中断(PD5接了一个发光二极管闪烁)
我是用来接收红外遥控6122码的,按手册上说的,设置每一次下降沿捕获到信号后便中断并记录计数器当前值的话,我应有头码+客户码/反码+数据/反码共33个数据,而我仿真时只能收到6个数据,我想请问大神们我这样的设置为什么会出现这样的问题,另我是用的内部时钟HSI 16分频,计数器的时基应是1us吧?但是我收到的数值62远远偏离头码数值13.5ms。
以下是定时器和中断设置
void TIME1_INIT(void)
{
  TIM1_PSCRH=0x00;
  TIM1_PSCRL=0x0f;        //16分频
  TIM1_CCMR1=0x01;        //不采样无预分频器,捕获输入口上检测到的每一个边沿都触发一次捕获;选择通道1
  TIM1_CCER1=0x03;        //cc1配置为输入 低电平或下降沿触发
  TIM1_IER=0x02;          //使能捕获1中断
  TIM1_Cmd(ENABLE);
}
#pragma vector=0xE
__interrupt void TIM1_CAP_COM_IRQHandler(void)
{
    GPIO_WriteReverse(GPIOD, GPIO_PIN_6); //翻转PD5发光二极管看是否有中断
    capturedata[num] = TIM1_GetCapture1(); // 获得捕获时间 ,取数组前两位相减得到头码
    num++;
    if(num==33)                    //共33位
    {
      num=0;
    }
    TIM1_ClearFlag(TIM1_FLAG_CC1); // 清标志位
}
沙发
scky333|  楼主 | 2012-9-17 12:55 | 只看该作者
消灭零回复

使用特权

评论回复
板凳
scky333|  楼主 | 2012-9-17 13:14 | 只看该作者
我设置了三个中断 一个外部中断 一个定时器4溢出中断 一个定时器1捕获中断 这几个中断需要设置中断优先级吗?是不是这里的问题导致了捕获中断丢失?

使用特权

评论回复
地板
yinqiwu| | 2012-9-18 16:20 | 只看该作者
用定时器加中断来做..

使用特权

评论回复
5
幻梦kfc| | 2012-11-1 11:20 | 只看该作者
看看   。。。学习下

使用特权

评论回复
6
wenzj12345| | 2013-8-1 22:14 | 只看该作者
好吧.还是没人回复方法.

使用特权

评论回复
7
yuanquanquan| | 2013-8-2 09:42 | 只看该作者
wenzj12345 发表于 2013-8-1 22:14
好吧.还是没人回复方法.

我刚开始看捕获这段  还不会用呢   求个历程   1096171228@qq.com

使用特权

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

本版积分规则

2

主题

6

帖子

1

粉丝