查看: 855|回复: 0
打印 上一主题 下一主题

STM8正交旋转编码器程序

[复制链接]
跳转到指定楼层
沙发
发表于 2016-5-30 17:12:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个程序是做数字音量控制那种编码器用的,不是测速那种,不过只要懂了这个,测速那种也差不多了,自己调试了半天走了一点歪路,其实很简单,实际可用
#define    TM1UPDATE_VECT  0x0D
#pragma vector = TM1UPDATE_VECT
__interrupt void TIM1_UPDATE_ISR( void )
{
    TIM1->SR1 = 0;      // clear overflow flag
    if(TIM1->CR1 & 0x10)
    {
        f_direct = 0;   //逆时针转
        f_encoder_1;
    }
    else
    {
        f_direct = 1;   //顺时针转
        f_encoder_1;
    }

}

void Encoder_Init_Configuration(void)
{
    TIM1->SMCR |= 0X01;   //工作在编码器模式1

    TIM1->CCMR1 |= 0X1;  //CC1 MAP TI1FP1  CH1

    TIM1->CCMR2 |= 0X1; //CC2 MAP  TI2FP2  CH2

    TIM1->ARRH = 0X00;  // 重载系数

    TIM1->ARRL = 0X01;

    TIM1->IER |=0X1;  //开中断

    TIM1->CR1 =0X1;   //启动计数
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表