用了一年多飞思卡尔MC9S12XS128这款处理器,现在总结下各个功能模块的驱动.
//锁相环时钟的初始化 总线频率为40MHz(总线时钟为锁相环时钟的一半)
//晶振为11.0592MHz
void PLL_init(void) //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)
{ //锁相环时钟= 2*11.0592*(39+1)/(10+1)=80MHz 总线时钟为40MHz
REFDV=0x0A;
SYNR=0x67; //0110_0111 低6位的值为19,高两位的值为推荐值
while(CRGFLG_LOCK != 1);
CLKSEL_PLLSEL = 1; //选定锁相环时钟
//FCLKDIV=0x0F; //Flash Clock Divide Factor 16M/16=1M
}
//周期中断定时器的初始化-
// //周期中断通道1用于脉冲累加器的定时采样,定时周期为: 10ms=(199+1)*(1999+1)/(40M) (没有使用)
//周期中断通道0用于控制激光管的轮流发射,定时周期为: 2000us= (399+1)*(199+1)/(40M)
//2011/4/4 15:24 定时时间改为1ms
void PIT_init(void)
{
PITCFLMT_PITE = 0; // 禁止使用PIT模块 PITCFLMT :PIT 控制强制加载微计数器寄存器。
PITCE_PCE0 = 1; // 使能定时器通道0
//PITCE_PCE1 = 1; //使能定时器通道1
PITM