注册会员
- 积分
- 96
- 威望
- 57
- 贡献
- 27
- 兑换币
- 34
- 注册时间
- 2018-3-20
- 在线时间
- 6 小时
|
4#
楼主 |
发表于 2018-5-12 20:27:26
|
只看该作者
谢谢 解答 那个输入捕获函数可以用了 只不过 我这个库 E0 E7 是 外部引脚输入计数函数的引脚 现在就是在两者的精度上有些疑问
一、外部引脚输入计数函数(例程):
uint16_t count;
//这2个模块模拟编码器的输出
ftm_pwm_init(FTM0, FTM_CH0, 1000, 50); //FTM0_CH0_PIN PTA0
ftm_pwm_init(FTM1, FTM_CH0, 1000, 50); //FTM2_CH0_PIN PTC0
ftm_pulse_init(FTM2, FTM_PS_1, TCLK1);
while(1)
{
//通过 ftm_pulse_mux 函数,重定义引脚 ,下面代码配置为 TCLK1
ftm_pulse_mux(FTM2, TCLK1); //TCLK1 PTE0
ftm_pulse_clean(FTM2) ;
DELAY_MS(100);
count = ftm_pulse_get(FTM2);
printf("\nTCLK1脉冲数:%d", count) ;
//通过 ftm_pulse_mux 函数,重定义引脚 ,下面代码配置为 TCLK2
ftm_pulse_mux(FTM2, TCLK2); //TCLK2 PTE7
ftm_pulse_clean(FTM2) ;
DELAY_MS(100);
count = ftm_pulse_get(FTM2);
printf("\nTCLK2脉冲数:%d", count) ;
DELAY_MS(500);
}
二、输入捕捉函数(例程):
uint16 count,count1 ;
//ftm_pwm_init(FTM0, FTM_CH0, 100, 50); //输出频率为100,占空比为 50/FTM0_PRECISON 。引脚为:FTM0_CH0_PIN
//uint16_t count_L,count_R;
ftm_pwm_init(FTM0, FTM_CH0, 100, 50 ); // 左电机 //A0
ftm_pwm_init(FTM0, FTM_CH1, 100, 0 ); //A1
ftm_pwm_init(FTM1, FTM_CH0, 100, 50 ); // 右电机 //H2
ftm_pwm_init(FTM1, FTM_CH1, 100 , 0 ); //E7
ftm_input_init(FTM2, FTM_CH2, FTM_Rising,FTM_PS_1); /*C2*/ /*LEFT CODER*/
ftm_input_init(FTM2, FTM_CH5, FTM_Rising,FTM_PS_1); /*B5*/ /*RIGHT CODER*/
while(1)
{
ftm_input_clean (FTM2 );
DELAY_MS(1000);
count = ftm_input_get (FTM2, FTM_CH2);
count1 = ftm_input_get (FTM2, FTM_CH5);
printf("\n左编码器脉冲数:%d", count);
//DELAY_MS(500);
printf(" 右编码器脉冲数:%d\n", count1);
}
|
|