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

📄 main.c

📁 freescale16位单片机mc9s12dg128scirti例程
💻 C
字号:
#include <hidef.h>      /* common defines and macros */
#include <mc9s12dg128.h>     /* derivative information */
#inclede <sci1.c>
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"

void TransmitT(char *text)
{unsigned char a;
  a=SCI0SR1;
  while (*text != '\0')
        {while (!(SCI0SR1 & 0x80));  /* wait for output buffer empty */
         SCI0DRL = *text++;}
}
void IniCOM(void)
{SCI0BDL=163;		//6M晶镇,25M总线
 SCI0CR1=0;	 //无奇偶校验,1个起始位8个数据位1个停止位
 SCI0CR2 = 0x2c;  //允许接收中断
}
void InitialRegs(void)    
{
/*---------串口初始化------*/ 
  IniCOM();

/*--------锁相环初始化-------*/
  CLKSEL=0x00;             //disable pll;
   CLKSEL=0;
  CLKSEL_PLLSEL = 0;                   
  PLLCTL_PLLON = 0;                   
  SYNR = 24;          //6M晶镇获得25M总线                 
  REFDV = 5;                     
  PLLCTL = 192;
  PLLCTL_PLLON = 1;                    
  while(!CRGFLG_LOCK);              
  CLKSEL_PLLSEL = 1;                   
/*-------------------定时中断初始化----*/ 
 RTICTL=0x1f;  //产生定时中断
CRGINT_RTIE=1;  //允许RTI中断 
asm CLI;


DDRT_DDRT4=1;
DDRB_BIT0=1;
DDRP_DDRP3=1;

}	
void main(void) {
InitialRegs();
  /* put your own code here */
  EnableInterrupts;
  for(;;) {
  TransmitT("The DG128 is OK\n");
  } /* wait forever */
}

#pragma CODE_SEG NON_BANKED

interrupt void RTI_ISR (void) { 
 static i=0;
 //闪烁小灯
 i++;
 if(i>100)
 {
 PTT_PTT4=PTP_PTP3;
 PORTB_BIT0=~PORTB_BIT0;
 PTP_PTP3=~PTP_PTP3;i=0;
  }
 CRGFLG_RTIF=1;
 
}

⌨️ 快捷键说明

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