智能车制作
标题:
电机代码不知道哪里错了!!!
[打印本页]
作者:
SPY。
时间:
2014-12-27 20:18
标题:
电机代码不知道哪里错了!!!
帮忙看看,新手,第一次编写128的程序,编译出现错误,但是找不出来!!!!
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
#define unint unsinge int
#define unchar unsinge char
/******时钟总线40MHZ******/
void PLL_init()
{
CLKSEL_PLLSEL=0; //不 使能锁相环
PLLCTL_PLLON=1; //允许锁相环
SYNR=0xc0|0x04;
REFDV=0x80|0x01;
POSTDIV=0x00;
_asm(nop); //延时
_asm(nop);
while(!(CRGFLG_LOCK==1)); //校验时钟校正同步
CLKSEL_PLLSEL=1;
}
void PWM_init()
{
PWME=0x00; //禁止通道
PWMPRCLK=0x11; //A=B=40/2=20MHZ
PWMSCLA=10; //SA=A/2/6=1MHZ
PWMSCLB=10; //SB=B/2/6=1MHZ
/*初始化PWM1*/
PWMCLK_PCLK1=1; //选择时钟
PWMPOL_PPOL1=1; //输出先为高电平,然后为低电平
PWMCAE_CAE1=0; //左对齐方式
PWMCNT1=0; //计数器清零
PWMPER1=20000; //输出周期=SB/20000=50HZ
PWMDTY1=1500; //舵机静止占空比为7.5%=1500/20000
PWMCTL=0; //不联级
PWMCLK_PCLK2=1; //选择时钟
PWMPOL_PPOL2=1; //输出先为高电平,然后为低电平
PWMCAE_CAE2=0; //左对齐方式
PWMCNT2=0; //计数器清零
PWMPER2=20000; //输出周期=SB/20000=50HZ
PWMDTY2=1500; //舵机静止占空比为7.5%=1500/20000
PWMCTL=0; //不联级
}
/*****电机正转******/
void motor_forward(unint duty)
{
PWM_PWME1=1; //使能IN1
PWM_PWME2=0; //禁止IN2
DDRP_DDRP1=1; //PTP_PTP1输出
PTP_PTP1=0; //输出0
PWMDTY1=duty;
}
/*****电机反转*******/
void motor_back(unint duty)
{
PWM_PWME2=1; //使能IN2
PWM_PWME1=0; //禁止IN1
DDRP_DDRP2=1; //PTP_PTP2输出
PTP_PTP2=0; //输出0
PWMDTY2=duty;
}
void main(void)
{
/* put your own code here */
EnableInterrupts;
unint i;
PLL_init();
PWM_init();
for(;;)
{
_FEED_COP(); /* feeds the dog */
/****正转加速*****/
for(i=0;i<100;i++)
{
motor_forward(unint i);
}
/*****反转加速*****/
for(i=0;i<100;i++)
{
motor_back(unint i);
}
} /* loop forever */
/* please make sure that you never leave main */
}
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2