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

📄 main.c

📁 飞思卡尔智能车的舵机测试程序
💻 C
字号:
#include <hidef.h>      /* common defines and macros */
#include <MC9S12XS128.h>     /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xs128"


void SetBusCLK_16M(void)             
{   
    CLKSEL=0X00;    
    PLLCTL_PLLON=1;          //锁相环电路允许位
    SYNR=0x00 | 0x01;        //SYNR=1
    REFDV=0x80 | 0x01;      
    POSTDIV=0x00;        
    _asm(nop);          
    _asm(nop);
    while(!(CRGFLG_LOCK==1));   
    CLKSEL_PLLSEL =1;          
}

void PWM_01(void) {     //舵机初始化
   PWMCTL_CON01=1;    //0和1联合成16位PWM;
    PWMCAE_CAE1=0;    //选择输出模式为左对齐输出模式
    PWMCNT01 = 0;     //计数器清零;
    PWMPOL_PPOL1=1;    //先输出高电平,计数到DTY时,反转电平
    PWMPRCLK = 0X40;    //clockA 不分频,clockA=busclock=16MHz;CLK B 16分频:1Mhz 
    PWMSCLA = 0x08;    //对clock SA 16分频,pwm clock=clockA/16=1MHz;     
    PWMCLK_PCLK1 = 1;   //选择clock SA做时钟源
    PWMPER01 = 20000;   //周期20ms; 50Hz;
    PWMDTY01 = 1500;   //高电平时间为1.5ms; 
    PWME_PWME1 = 1;    
}

void PWM_2(void) {      //驱动电机初始化
PWMPRCLK=0X60;
PWMCLK_PCLK2=1;
PWMSCLB=0X7D;
PWMPOL_PPOL2=0XFF;
PWMCAE_CAE2=0X00;
PWMPER2=0X13;
PWMDTY2=0X13;
PWME_PWME2=1;
}

void main(void) {
      int i;
      int j;
      int k;
      int n;
     SetBusCLK_16M();
     PWM_01(); 
     PWM_2();
      while(1) {
      
    for(i=0;i<=200;i++) {
          for(j=0;j<=200;j++) {
            for(k=0;k<=20;k++)
            ;} 
         } 
             
         PWMDTY01=1500;//摆正
         PWMDTY2=0X03;
         
          
    for(i=0;i<=200;i++) {
          for(j=0;j<=200;j++) {
            for(k=0;k<=20;k++)
            ;}
          }
            
        PWMDTY01=1000; //极左
        PWMDTY2=0X03; 
      
    for(i=0;i<=200;i++) {
          for(j=0;j<=200;j++) {
            for(k=0;k<=20;k++)
            ;}
         }
        PWMDTY01=2000; //极右                 
        PWMDTY2=0X09;
 
    for(i=0;i<=200;i++) {
          for(j=0;j<=200;j++) {
            for(k=0;k<=20;k++)
            ;}
         }
        PWMDTY01=1000;    //极左                    
        PWMDTY2=0X09;
    
    for(n=0;n<=999;n++)
    {
      
    for(i=0;i<=2;i++) {
          for(j=0;j<=200;j++) {
            for(k=0;k<=20;k++)
            ;}
         }
        PWMDTY01=PWMDTY01+1;              
        PWMDTY2=0X00;
    }
    
    for(n=0;n<=999;n++)
    {
      
    for(i=0;i<=2;i++) {
          for(j=0;j<=200;j++) {
            for(k=0;k<=20;k++)
            ;}
         }
        PWMDTY01=PWMDTY01-1;              
        PWMDTY2=0X00;
    }

}
}

⌨️ 快捷键说明

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