高级会员
- 积分
- 870
- 威望
- 309
- 贡献
- 303
- 兑换币
- 14
- 注册时间
- 2009-10-7
- 在线时间
- 129 小时
|
2#
楼主 |
发表于 2010-3-18 08:29:31
|
只看该作者
pwm初始化为:
DDRP = 0X3b; //电机 舵机 输出
PWMCTL = 0X30; //0和1联合成16位PWM,P1输出控制舵机,23控制电机
PWMCAE = 0X00; //选择输出模式为左对齐输出模式
PWMCNT01 = 0;
PWMCNT23 = 0; //计数器清零;
PWMPOL = 0X0A; //先输出高电平,计数到DTY时,反转电平
PWMPRCLK = 0X21; //clockA 2分频,clockA=busclock/2=20MHz;CLK B 4分频:10Mhz
PWMSCLA = 0x0A; //对clock A 20分频,pwm sa clock=clockA/20=1MHz;
PWMSCLB = 0X0A; //对clock B 20 分频 500 khz Clock SB = Clock B / (2 * PWMSCLB)
PWMCLK_PCLK1 = 1; //pwm1 选择clock SA做时钟源 pwm3 选择clock a
PWMCLK_PCLK3 = 1; //SB
PWMPER01 = 20000;
//20000周期20ms; 50Hz;(可以使用的范围:50-200hz)10000用10ms时灵敏
Servo_dty = 1500; //高电平时间为1.5ms;正中
PWMPER23 = 1000; //电机频率
Motor_dty = 0; // 高电平时间为0
PWME_PWME1 = 1; //1,3输出,舵机,电机
PWME_PWME3=1;
spi初始化为:
MODRR = 0x10; //spi use m4 m5 port
SPI0CR1 = 0x50;
SPI0CR2 = 0x08;
SPI0BR = 0x01; //BR=busclk/((SPPR + 1)· 2^(SPR + 1)) |
|