liuxingxyz 发表于 2019-10-14 20:32:44

求助,stm8s的输入捕捉进不了中断??谢谢!!!附代码

void TIM1_Init(void)
{
    TIM1_IER= 0x00;//禁止中断
    TIM1_EGR= 0x01;   //允许产生更新标志
    //TIM1_PSCR =0x08; //设置时钟分频 2M/2=1MHz---1us
    TIM1_PSCRH = 0x00;
    TIM1_PSCRL = 0x01;
    TIM1_ARRH= 0x27;//0x270F=9999
    TIM1_ARRL= 0x0F;//ARR自动装载值   
   
    TIM1_CNTRH = 0x00;//初值
    TIM1_CNTRL = 0x00;
   
    TIM1_CCMR3 |= 0x01;
    TIM1_CCER2 |= ~0x02;//上升沿或者高电平触发
TIM1_CCER2 |= 0x01; //捕获使能
    TIM1_IER   |= 0x08; //允许捕获中断
   
    TIM1_SMCR = 0x54;   //复位触发模式
    TIM1_IER |= 0x01;   //允许中断
    TIM1_CR1 |= 0x81;   //开启定时器
},定时器中断正常,捕捉不能产生中断,用的是TIM1_CH3N通道,单片机型号是STM8S003K3。

mikecai 发表于 2019-10-15 10:32:58

为何两个 TIM1_CCER2? 呢这里有问题
TIM1_CCER2 |= ~0x02;//上升沿或者高电平触发
TIM1_CCER2 |= 0x01; //捕获使能

liuxingxyz 发表于 2019-10-16 00:43:07

mikecai 发表于 2019-10-15 10:32
为何两个 TIM1_CCER2? 呢这里有问题
TIM1_CCER2 |= ~0x02;//上升沿或者高电平触发
TIM1_CCER2 |= 0x ...

第一句是配置上升沿中断,第二句是配置捕捉使能;现在就是能产生中断,但是TIM1_CCR3寄存器中没有值,不知道怎么回事,能帮我看下吗,谢谢

liuxingxyz 发表于 2019-10-16 00:43:32

mikecai 发表于 2019-10-15 10:32
为何两个 TIM1_CCER2? 呢这里有问题
TIM1_CCER2 |= ~0x02;//上升沿或者高电平触发
TIM1_CCER2 |= 0x ...

第一句是配置上升沿中断,第二句是配置捕捉使能;现在就是能产生中断,但是TIM1_CCR3寄存器中没有值,不知道怎么回事,能帮我看下吗,谢谢!

mikecai 发表于 2019-10-16 08:37:23

建议用 cubeMX ,选择 您的STM8s 生成project,再定义 Time1,生成初始代码。

liuxingxyz 发表于 2019-10-19 12:03:57

liuxingxyz 发表于 2019-10-16 00:43
第一句是配置上升沿中断,第二句是配置捕捉使能;现在就是能产生中断,但是TIM1_CCR3寄存器中没有值,不 ...
      TIM1_CR1   = 00;   //计数器向上计数
      TIM1_PSCRH = 0x00;   //设置时钟分频 2M/2=1MHz---1us
      TIM1_PSCRL = 0x01;
      TIM1_ARRH= 0x27;   //0x270F=9999
      TIM1_ARRL= 0x0F;   //ARR自动装载值   
      
      TIM1_CNTRH = 0x00;   //初值
      TIM1_CNTRL = 0x00;
      
      TIM1_CCMR2 |= 0x01;//TIM1_CCMR1_CC1S
TIM1_CCER1 |= ~0x20; //上升沿或者高电平触发//TIM1_CCER1_CC1P
      TIM1_SR1   &=~(0x04);
      TIM1_IER   |= 0x05;//允许捕获中断
      TIM1_CCER1 |= 0x10;
      
      TIM1_IER   |= 0x01;//允许捕获中断
      TIM1_CR1   |= 0x05;//开启定时器


现在捕捉产生中断,但是每次中断TIM1_CCR2数据不变化,都是一个值,这个是什么原因,而且值的时间也不对?

butterflyspring 发表于 2019-10-23 17:42:13

调试时可以看看计数器的值走不走:)
页: [1]
查看完整版本: 求助,stm8s的输入捕捉进不了中断??谢谢!!!附代码