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

📄 init.c

📁 智能小车源代码
💻 C
字号:
/*
*********************************************************
*********              init.c                ************
*********             初始化程序             ************                         
*********************************************************/
#include <mc9s12dg128.h>     /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"

//clock setting,bus_clock=24mhz
void init_clock(void){
    REFDV=0x01;
    SYNR=0x02;
    while(CRGFLG_LOCK==0x00);
    CLKSEL_PLLSEL=1;
}

void init_portb(void){
  DDRB=0xff;
  PORTB=0xaa;
}


//ATD初始化
void init_atd(void){
  ATD0CTL2=0X40;//AD禁止,禁止中断,自动清除标志位
  ATD0CTL3=0X40;//8路转换
  ATD0CTL4=0X87;//8位精度,clk=1.5mhz,fs=750khz
  ATD0CTL5=0XB0;//右对齐,多通道转换,连续转换
}

//pwm init
void init_pwm(void){
  PWME=0X00;
  PWMPRCLK=0X33;//clk=3mhz
  PWMPOL=0Xff;  //起始高电平
  PWMCAE=0X00;
  PWMCTL_CON01=1;   //01级连
  PWMCTL_CON23=1;   //23级连
  PWMCTL_CON45=1;   //45级连
  PWMPER01=60000;//50hz
  PWMPER23=60000;
  PWMPER45=60000;
  PWMDTY01=4500;//1.5ms
  PWMDTY23=0x0000;
  PWMDTY45=0x0000;
}

//PAI init
void init_pai(void){
  PACTL=0x00;//PAI禁止,记数模式,中断关,下降沿捕捉
}

//定时器初始化,20ms中断
void init_timer(void){
  TIOS=0X80;   //TC7工作方式:输出比较
  TIE=0x80;    //TC7中断使能
  TSCR2=0X03;  //溢出中断禁止,置分频系数,f=3mhz
  TFLG1=0XFF;  //清除中断标志
  TC7=60000;   //TC7赋初值,f=50hz
  TCNT=0X0000;
  TSCR1=0X00;  //定时器禁止
}

void init(void){
  init_clock();
  init_portb();
  init_atd();
  init_pwm();
  init_pai();
  init_timer();
}
    

⌨️ 快捷键说明

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