打印
[STM8]

STM8S103TIM1进不了捕获中断

[复制链接]
1998|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wyfccf|  楼主 | 2014-4-8 17:58 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
请高手指点一下,看了很多贴子,都是用库函数做的,直接设置的不行吗???
STM8S103F的CH1捕获中断,进不了中断.IO口已经设成输入了.下面是TIM1,有问题吗?求解,开中断了,其它定时中断的都可以进..
        TIM1_IER        =        0X0;
        TIM1_CR1        =        0X01;
        TIM1_CR2        =        0X00;
        TIM1_SMCR        =        0X54;
        TIM1_ETR        =        0;
        TIM1_IER        =        0X2;
        TIM1_CCMR1=        0X01;
        TIM1_CCER1=        0X01;
        TIM1_PSCRH=        00;
        TIM1_PSCRL=        0X10;
        TIM1_ARRH        =        0XFF;
        TIM1_ARRL        =        0XFF;
        TIM1_CR1        =        0X1;
沙发
wyfccf|  楼主 | 2014-4-8 18:18 | 只看该作者
TIM1

111.bmp (778.07 KB )

111.bmp

使用特权

评论回复
板凳
FAQ| | 2014-4-8 20:12 | 只看该作者

我用的是TIM2的输入捕获功能  硬件管脚为:PD4  TIM2_CH1

设置代码如下,测试可用 ,你大致参考下,里面注释语句可能不对,你只看没有被注释掉的代码就可以了。

void TIM2_Config(void)
{
  
  
   // GPIO_Init(GPIOD,GPIO_PIN_4,GPIO_MODE_IN_PU_NO_IT);//霍尔信号捕获输入
  
   
   
    GPIO_Init(GPIOA,(GPIO_Pin_TypeDef)(GPIO_PIN_1|GPIO_PIN_2),GPIO_MODE_OUT_PP_HIGH_SLOW);//
   
   
   
   
    /* Set the Prescaler value */
    TIM2->PSCR = (uint8_t)(TIM2_PRESCALER);
    /* Set the Autoreload value */
    TIM2->ARRH = (uint8_t)(TIM2_PERIOD >> 8);
    TIM2->ARRL = (uint8_t)(TIM2_PERIOD);
   

    /* TI1 Configuration */

    /* Disable the Channel 1: Reset the CCE Bit */
    TIM2->CCER1 &= (uint8_t)(~TIM2_CCER1_CC1E);

    /* Select the Input and set the filter */
    TIM2->CCMR1  = (uint8_t)((uint8_t)(TIM2->CCMR1 & (uint8_t)(~(uint8_t)( TIM2_CCMR_CCxS | TIM2_CCMR_ICxF )))
                             | (uint8_t)(((TIM2_ICSELECTION_DIRECTTI)) | ((uint8_t)( 0x00 << 4))));

    /* Select the Polarity */

    //TIM2->CCER1 &= (uint8_t)(~TIM2_CCER1_CC1P);//上升沿
    TIM2->CCER1 |= TIM2_CCER1_CC1P;//下降沿

    /* Set the CCE Bit */
    TIM2->CCER1 |= TIM2_CCER1_CC1E;
   
   
   


    /* Reset the IC1PSC Bits &Set the IC1PSC value */
    TIM2->CCMR1 = (TIM2->CCMR1 & 0xF3)| TIM2_ICPSC_DIV1;
    TIM2->CR1 |= 0x01;//使能TIM2

  //  TIM2->CR1 |= 0x04;//  URS 位1:当更新请求使能时,只有计数器溢出才产生更新中断
   
   
   
    /* Enable the Interrupt sources */
    TIM2->IER |= TIM2_IT_CC1;
    TIM2->IER |=TIM2_IT_UPDATE;
   
}


使用特权

评论回复
地板
zxc729| | 2014-4-8 22:20 | 只看该作者
Option byte设置了吗

使用特权

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

本版积分规则

12

主题

31

帖子

1

粉丝