⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 这是Mc9sdg128的舵机调试程序,适合进行智能小汽车的调试.
💻 C
字号:
#include <hidef.h>      /* common defines and macros */
#include <mc9s12dg128.h>     /* derivative information */

#include "PLL.h"
#define RudderDefault 305
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
#define  RudderSet PWMDTY67 
signed int position;
void PWM_Init(void);

void main(void) {
  DisableInterrupts;
  PLL_Init();
    PWM_Init();
    
  for(;;){
   position =25; 
  RudderSet = RudderDefault + position;
  position =20; 
  RudderSet = RudderDefault + position;
  position =15; 
  RudderSet = RudderDefault + position;
  position =10; 
  RudderSet = RudderDefault + position;
  position =5; 
  RudderSet = RudderDefault + position;
  position =0; 
  RudderSet = RudderDefault + position;
   position =-5; 
  RudderSet = RudderDefault + position;
   position =-10; 
  RudderSet = RudderDefault + position;
  position =-15; 
  RudderSet = RudderDefault + position;
  position =-20; 
  RudderSet = RudderDefault + position;
  }
}


void PWM_Init()
 {					    
    PWME=0x00;              //禁止所有PWM
    PWMCTL=0x80;            //使6,7路合并为十六位 其余均为八位。
    PWMPRCLK=0x00;          //不预分频
    PWMSCLB=81;
    PWMSCLA=7;              //使用sa时钟为pmw时钟      

    PWMCLK=0xB0;             //时钟选择
    PWMPOL=0xA0;             //极性选择
    PWMCAE=0x00;             //左对齐
  
     PWMPER67=2962;//50Hz           //500~2000都可以
    //PWMPER67=1480;//100Hz
    //PWMPER67=1234;//120Hz
    //PWMPER67=1139;//130Hz
    //PWMPER67=1057;//140Hz
     //PWMPER67=1000;//150Hz 
     PWMDTY67=300;           // 越小,车轮越向右
  
    PWMPER4=200;			      //10KHz
    PWMPER5=200;			      //10KHz,方向与四相同
    PWMDTY4=200;			    
//如果和5相同则 不制动,制动程度决定于5低点平时 4高点平的占空比
    PWMDTY5=200;	     //越大,速度越快,测试的时候先设小一点	  
    DDRP=0xff;                 //将PWM端口设为输出
    PWMCNT67=0;              //开始计数
    PWMCNT45=0;
    PWME=0xB0;               //允许PWM 7 4 5 

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -