#include <hidef.h> /* common defines and macros */
#include <MC9S12XS128.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xs128"
#define uint unsigned int
#define uchar unsigned char
#define DJ_MID_RUDDER 4500 //最右4160,最左4900
#define DJ_MID_CAMERA 4500 //最右1200,最左6900
#define in_y PTIH_PTIH7
unsigned char ly_ct=0;
unsigned char ly_flag=1;
unsigned char ly_lhj[4];
uchar table[]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//表:共阳数码管 0-9
uchar ct;
uchar data_receive;
uint forup,back;
#define H1 PT1AD0_PT1AD07 //片选
#define H2 PT1AD0_PT1AD06
#define H3 PT1AD0_PT1AD05
#define H4 PT1AD0_PT1AD04
#define DA PT1AD0_PT1AD03 //数据输出
#define SC PT1AD0_PT1AD02 //移位时钟
#define ST PT1AD0_PT1AD01 //锁存信号
//超频到48MHz
void PLL_Init(void) //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)即 锁相环时钟=2*16*(2+1)/(1+1)=48MHz
{
REFDV=0x01; //总线时钟=48/2=24MHz
SYNR=0x02;
while(!(CRGFLG&0x08)); //wait until pll_lock=0;锁相环频率为锁定;
CLKSEL=0x80; //置位PLLSEL=1;选定锁相环时钟;
}
void delay(int time){//0.1ms
uint i;uint j;
for (i=0;i<time;i++)
for (j=0;j<400;j++);
ly_ct++;
}
void delayus(int time){//1us
uint i;uint j;
for (i=0;i<time;i++)
for (j=0;j<4;j++);
ly_ct++;
}
//PWM初始化
void PWM_Init(void)
{