stc的pwm控制舵机
最近想控制舵机玩玩!51两个定时器控制多个没办法!精度也提不上去发现stc有块12c5608ad里面有4个pwm生成
但调成周期是20ms脉宽可变的程序不知怎么弄
现在调成21khz的
CMOD = 0x02; // 计数脉冲源选择= 0 1 f/2 。 11.0592M/2/256=21.6KHz
CL = 0x00;
CH = 0x00;
CCAP0L = plus;//改变脉宽
CCAP0H = plus;//
CCAPM0 = 0x42;//0100,0010 Setup PCA module 0 in PWM mode
CR = 1;
不知怎么修改? 在stc12c5a08s2中是这样的,不知道你这个一样不一样。具体要看datasheet。
void PWM()
{
CMOD = 0x04; // 设置模式,
TMOD=0x02;
TH0=251;
TL0=251;
TR0=1;//也可以用这个加到程序上,用这个可以自己调的频率的PWM输出*/
CCAPM0 = 0x42; //输入使能,和输出使能
CCAPM1 = 0x42; //输入使能,和输出使能
CR = 1; //启动 PCA 定时器.
}
通过调节TH0=251;TL0=251;就可以得到想要的频率了 关注 1楼您说的方法是用一个定时器0做时钟源是吧!
改变定时器的定时长来改变频率,哪是不是占空比是50%,
要想脉宽可调怎么办? CCAPM0 = 0x42; //输入使能,和输出使能
CCAPM1 = 0x42; //输入使能,和输出使能
手册上有写,调占空比
页:
[1]