|
发表于 2012-11-29 10:41:43
|
显示全部楼层
rovershie 发表于 2012-11-29 10:00 ![](static/image/common/back.gif)
图纸上的TIM3-CH2 (RST-LCD)这个印脚可以空出来接收PPM信号。楼主对这么不熟悉,需要加接解码芯片吗,像红 ...
TIM3_CH2可以配置成PWM Input的模式
用中断来读每个PPM信号的脉宽
当TIM3配置好了之后,可以这样来读PPM宽度
然后再根据摇控器把这些PPM信号与油门,舵机这些对应起来
这部分相对独立
有些PPM信号会反相,需要处理一下
void TIM3_IRQHandler(void)
{
if(TIM_GetITStatus(TIM3, TIM_IT_CC2) == SET)
{
uint32_t period = TIM3->CCR2;
uint32_t duty = TIM3->CCR1;
TIM_ClearITPendingBit(TIM3, TIM_IT_CC2);
if(duty > PPM_MAX_PERIOD_CNT){
if(ppm_idx<16)ppm_cnt = ppm_idx;
ppm_idx = 0;
}else{
if(ppm_idx<16){
ppm_values[ppm_idx & 15] = duty;
ppm_idx++;
}
}
}
} |
|