|
楼主 |
发表于 2012-7-14 22:42:57
|
显示全部楼层
weixinal 发表于 2012-7-14 21:27
//when ARR=1020@72m,1ms(,高电平)==51(CCR),102==2ms
//when ARR=65535@72m,1ms==3276,6552==2ms
//舵机16 ...
改了代码之后,像这样子:
TIM_TimeBaseStructure.TIM_Period = 160; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值
TIM_TimeBaseStructure.TIM_Prescaler = 9000-1;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上计数模式
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位
TIM3 是72MHz的,分频后的频率是 72MHz / 9000 = 8KHz ,PWM的周期还是 20ms, 这时候 逐渐改变 Pulse 的值,也就是占空比,发现 当 Pulse的值在 8 -- 16 之间的时候,(1ms -- 2ms)之间的时候,电调不会响了(超出这个范围也还是会响)。虽然不响,但是还是不会动,难道这个(就是8Khz) 也有关系的吗? |
|