智能车制作

标题: 电机代码不知道哪里错了!!! [打印本页]

作者: 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