?? init.c
字號(hào):
/*
*********************************************************
********* 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禁止,禁止中斷,自動(dòng)清除標(biāo)志位
ATD0CTL3=0X40;//8路轉(zhuǎn)換
ATD0CTL4=0X87;//8位精度,clk=1.5mhz,fs=750khz
ATD0CTL5=0XB0;//右對(duì)齊,多通道轉(zhuǎn)換,連續(xù)轉(zhuǎn)換
}
//pwm init
void init_pwm(void){
PWME=0X00;
PWMPRCLK=0X33;//clk=3mhz
PWMPOL=0Xff; //起始高電平
PWMCAE=0X00;
PWMCTL_CON01=1; //01級(jí)連
PWMCTL_CON23=1; //23級(jí)連
PWMCTL_CON45=1; //45級(jí)連
PWMPER01=60000;//50hz
PWMPER23=60000;
PWMPER45=60000;
PWMDTY01=4500;//1.5ms
PWMDTY23=0x0000;
PWMDTY45=0x0000;
}
//PAI init
void init_pai(void){
PACTL=0x00;//PAI禁止,記數(shù)模式,中斷關(guān),下降沿捕捉
}
//定時(shí)器初始化,20ms中斷
void init_timer(void){
TIOS=0X80; //TC7工作方式:輸出比較
TIE=0x80; //TC7中斷使能
TSCR2=0X03; //溢出中斷禁止,置分頻系數(shù),f=3mhz
TFLG1=0XFF; //清除中斷標(biāo)志
TC7=60000; //TC7賦初值,f=50hz
TCNT=0X0000;
TSCR1=0X00; //定時(shí)器禁止
}
void init(void){
init_clock();
init_portb();
init_atd();
init_pwm();
init_pai();
init_timer();
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -