智能车制作

标题: 单向编码器如何判断正反转 [打印本页]

作者: yanghongwei    时间: 2015-7-9 11:16
标题: 单向编码器如何判断正反转
//////////////////////////////// 以下为脉冲计数  //////////////////////////////////////////
/*!
*  @brief      脉冲计数初始化函数
*  @param      TPMn_e          模块号(TPM0、  TPM1、  TPM2)
*  @param      TPM_CLKIN_e     脉冲输入管脚
*  @param      TPM_PS_e        分频因子
*  @since      v5.2
*  @note       同一个TPM,只能干一个活,用于脉冲计数后就不要再用于其他功能,例如PWM、输入捕捉。
*  Sample usage:       tpm_pulse_init(TPM0,TPM_CLKIN1,TPM_PS_2);     //TPM0初始化为脉冲计数,脉冲输入管脚为 TPM_CLKIN1_PIN ,进行二分频计数。
*/
void tpm_pulse_init(TPMn_e tpmn,TPM_CLKIN_e clkin,TPM_PS_e ps)
{
    ASSERT(ps < TPM_PS_MAX);

    //配置 复用
    switch(tpmn)
    {
    case TPM0:
        SIM_SCGC6 |= SIM_SCGC6_TPM0_MASK;       //使能TPM0时钟


        break;
    case TPM1:
        SIM_SCGC6 |= SIM_SCGC6_TPM1_MASK;       //使能TPM1时钟
        break;

    case TPM2:
        SIM_SCGC6 |= SIM_SCGC6_TPM2_MASK;       //使能TPM2时钟
        break;
    default:
        ASSERT(0);
    }

    if(clkin == TPM_CLKIN0)
    {
        SIM_SOPT4 &= ~( SIM_SOPT4_TPM0CLKSEL_MASK << tpmn );
        port_init(TPM_CLKIN0_PIN,ALT4);
    }
    else if(clkin == TPM_CLKIN1)
    {
        SIM_SOPT4 |= ( SIM_SOPT4_TPM0CLKSEL_MASK << tpmn );
        port_init(TPM_CLKIN1_PIN,ALT4);
    }
    else
    {
        ASSERT(0);              //断言,clkin 只能 0 和 1
    }

    /******************** 配置时钟和分频 ********************/
    SIM_SOPT2 &= ~ SIM_SOPT2_TPMSRC_MASK;
    SIM_SOPT2 |= SIM_SOPT2_TPMSRC(1);        //     00 Clock disabled  01 MCGFLLCLK clock, or MCGPLLCLK/2  10 OSCERCLK clock   11 MCGIRCLK clock

    TPM_SC_REG(TPMN[tpmn])    = ( 0
                                  //| TPM_SC_CPWMS_MASK         //0:上升沿计数模式 ,1: 跳变沿计数模式选择 (注释了表示 0)
                                  | TPM_SC_PS(ps)             //分频因子,分频系数 = 2^PS
                                  | TPM_SC_CMOD(2)
                               );
    TPM_MOD_REG(TPMN[tpmn])   = 0xFFFF;
    TPM_CNT_REG(TPMN[tpmn])   = 0;                          //计数器。只有低16位可用(写任何值到此寄存器,都会清0)
}

////////////
能否在这个里边根据陀螺仪来判断????如果能该怎么弄??求指教


作者: xw2588    时间: 2015-7-17 08:23
可以用74HC74.接一个I/O口,或者通过电机PWM输出,根据电机正转反转判断。
作者: Toina    时间: 2015-8-18 11:34
楼主你的编码器是什么参数?




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2