智能车制作
标题:
关于PWM编程
[打印本页]
作者:
zhangyi5009
时间:
2009-4-9 13:07
标题:
关于PWM编程
我们用的是P口的1、2、7端口,其中1和2是控制电机的,7是控制舵机的,都是16位的,请问怎么初始化啊?谢谢了!!!
作者:
rrison
时间:
2009-4-9 22:51
dg128
void PWM_INIT(void)
{
/// PDTY01=18400;
// PDTY67=1500;
PWMCAE=0x00;
PWME=0xFF; //禁止pwm
PWMPOL=0x42; //起始输出为高电平
PWMCLK=0x00; //通道零时钟为A
PWMPRCLK=0x03; //总线时钟8分频为 CLOCK A
PWMCTL=0x90; //通道0.1 6.7级联16位
PWMDTY01=1520; //占空比初始化
PWMPER01=20000; //周期20毫秒
PWMDTY67=1300;
PWMPER67=2000; //周期2毫秒
PWME_PWME1 =1;
PWME_PWME7 =1;
PWMDTY45=10;
作者:
草竹
时间:
2009-4-10 18:18
//PWM模块初始化
void init_PWM(void){
PWME=0;
/*舵机使用PWM45级联*/
PWMCTL_CON45=1; //级联PWM45
PWMCLK_PCLK5=1; //PWM5选择SA为时钟源
PWMPRCLK_PCKA=0; //A时钟预分频0;分频4
PWMSCLA=4; //即1/3us
PWMPOL_PPOL5=1; //PWM5输出先高后低
PWMPER45=30000; //100Hz
PWMDTY45=SERVO_MID; //舵机中心位置1.5ms高电平
PWME_PWME5=1; //启动PWM5
/*驱动电机使用PWM2和PWM3,目前仅使用PWM3*/
PWMCLK_PCLK2=1; //PWM2使用SB时钟
PWMCLK_PCLK3=1; //PWM3使用SB时钟
PWMPRCLK_PCKB=0; //B=Bus
PWMSCLB=128; //SB=B/64=384K 即4us
PWMPOL_PPOL2=1; //P2先低后低
PWMPOL_PPOL3=1; //P3先高后低
PWMPER2=0xff;
PWMPER3=0xff;
PWMDTY2=0x60;
PWMDTY3=0x00;
PWME+=0x0c; //同时使能PWM23
}
作者:
zhaodong584
时间:
2009-4-10 18:39
void PWM_init(void)
{
PWMCTL_CON01=1;
PWMCTL_CON23=1;
//
两个通道联合产生
PWM
波
PWMCAE_CAE1=0;
PWMCAE_CAE3=0;
//0=left,1=center
PWMPOL_PPOL1=1;
PWMPOL_PPOL3=1;
//PWM
波的极性控制
PWMCLK_PCLK1=1;
//
选择
SA
作为时钟源
PWMCLK_PCLK3=1;
//
选择
SB
作为时钟源
PWMCNT01=0;
PWMCNT23=0;
//
计数器清零
PWMPRCLK=0x10;
//BUS CLOCK=32M
CLOCKA=BUSCLOCK,CLOCKB=BUSCLOCK/4
PWMSCLA=1;
PWMSCLB=2;
//
对
PRCLK
进行
n*2
分频
PWMDTY01=0;
PWMPER01=1500;
PWMDTY23=2700;
PWMPER23=40000;
PWME_PWME1=1;
PWME_PWME3=1;
//PWM
通道使能
}
作者:
zhaodong584
时间:
2009-4-10 18:42
哦,不好意思,忘记改端口了.懂了程序,改一下就可以了.
作者:
zhaodong584
时间:
2009-4-10 18:42
哦,不好意思,忘记改端口了.懂了程序,改一下就可以了.
作者:
星空下的学生
时间:
2009-4-11 16:39
哦,不好意思,忘记改端口了.懂了程序,改一下就可以了.
zhaodong584 发表于 2009-4-10 18:42
11111111111
作者:
syxhaha
时间:
2009-11-29 20:15
duoxie
作者:
西子枫林
时间:
2010-3-13 16:38
非常感谢!
作者:
alexzhan
时间:
2010-3-13 19:05
学习来
作者:
francis
时间:
2010-3-14 22:07
learn
作者:
wzcp
时间:
2010-3-15 09:23
谢谢啦~学习来了,哈哈
作者:
zhoulxm
时间:
2010-3-15 23:03
作者:
xiaohaipolang
时间:
2010-3-20 11:57
作者:
nigel1946
时间:
2010-3-25 14:34
作者:
小怪兽AK
时间:
2010-3-25 23:21
蛮不错的 学习了
作者:
hex
时间:
2010-3-26 15:50
呵呵 分享快乐 学习
作者:
xiaohaipolang
时间:
2010-3-27 14:05
作者:
feiyang1989
时间:
2010-3-29 00:24
非常感谢
作者:
yanzi1225627
时间:
2010-4-1 19:39
十分感谢 我怎么查到关于寄存器的 资料呢??
作者:
yanzi1225627
时间:
2010-4-1 19:39
是不是 dg128的每一个模块都有自己相应的寄存器啊??
作者:
he251125
时间:
2010-4-1 20:22
xiexieha
作者:
jession4
时间:
2010-4-5 23:06
学习了~
作者:
qq451121549
时间:
2010-4-11 19:30
作者:
crj19880917
时间:
2010-5-3 01:41
回复
3#
草竹
问下啊,你电机的口没用级联么,就是8位的有影响么
作者:
crj19880917
时间:
2010-5-3 01:52
回复
3#
草竹
问下啊,用一路和2路PWM到底有什么区别啊,2路的话怎么实现的?PWMPOL_PPOL2=1; //P2先低后低
PWMPOL_PPOL3=1; //P3先高后低 是不是通过这2句来实现2路波的合成?
作者:
向往智能
时间:
2010-5-5 00:09
biegaohuibian
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2