智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 835|回复: 0
打印 上一主题 下一主题

电机代码不知道哪里错了!!!

[复制链接]

21

主题

196

帖子

0

精华

版主

Rank: 9Rank: 9Rank: 9

积分
2080
威望
1012
贡献
600
兑换币
642
注册时间
2014-12-6
在线时间
234 小时
毕业学校
华南农业大学
跳转到指定楼层
1#
发表于 2014-12-27 20:18:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
帮忙看看,新手,第一次编写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 */
}


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-28 10:58 , Processed in 0.078439 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表