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

📄 main.c

📁 freescale 9s12dp256单片机 定时器原代码
💻 C
字号:
/***************************************************************************************
*					             
*		(c) copyright 2005,Tongji-Freescale Automobile Electronic Aligned Lab,ShangHai,China
*
*						         All Rights Reserved
*
*
* File Name				: RTI&TIMER
*
* Programmer(s)			: Wukai
*	
* Date Created			: 2005.07.16
*
* Current Revision		: V1.0
*
* Modification History	: 
*
* Description			: 
*
***************************************************************************************/

#include <hidef.h>      /* common defines and macros */
#include <mc9s12dp256.h>     /* derivative information */


#pragma LINK_INFO DERIVATIVE "mc9s12dp256b"

unsigned int count=0;

#pragma CODE_SEG __NEAR_SEG NON_BANKED

/*实时中断服务程序*/
void interrupt 7 RTI_ISR(void)
{
	CRGFLG = 0x80;			/*清实时中断标志*/
	count++;
	if(count==100)
	 {
	  PTS_PTS2=~PTS_PTS2;	 	/*每1s使得PTS_PTS2口上信号翻转,驱动LED(D5)闪烁*/
    		   count=0;
   	}
}

/*定时器0输出比较中断服务程序*/
void interrupt 8 COMP0_INT(void)
{
 TFLG1_C0F=1;		 /*清COMP0输出比较中断标志*/
 TC0=TC0+0x7a12; /*定时500ms*/
 PTS_PTS4=~PTS_PTS4;			/*每500ms使得PTS_PTS4口上信号翻转,驱动LED(D7)闪烁*/
}


#pragma CODE_SEG DEFAULT

/*PORTS初始化程序*/
void PORTSInit(void)		
{

DDRS=0xff;						/*PORTS定义为输出*/
PTS=0xff;						  /*初始化为高,LED灭*/	
}


/* 实时中断初始化程序 */
void RTIInit(void)
{

 //RTICTL=0x49;					/* 实时中断溢出时间5ms(系统晶振16MHZ) */
 RTICTL = 0x59;					/* 实时中断溢出时间10ms(系统晶振16MHZ) */
 CRGINT_RTIE=1;					/* 实时中断使能 */
}



/*定时器初始化程序*/
void COMPInit(void)
{

TTOV=0xff;						/*输出比较中断溢出端口翻转使能*/				
TIOS=0xff;						/*定义所以的定时器模块为输出比较功能*/
TCTL1=0x00;						/*定时器与端口断开连接*/
TCTL2=0x00;				  	/*输出比较中断溢出端口翻转使能*/
TIE=0x00;						  /*定时器中断不使能*/
TSCR2=0x07;						/*定时器时钟源128预分频*/
TSCR1=0x80;						/*启动定时器*/
TC0=0X0000;           /*置定时器初值*/
TC1=0x0000;
TC2=0x0000;
TC3=0x0000;
TC4=0x0000;
TC5=0x0000;
TC6=0x0000;
TC7=0x0000;
}




void main(void) 
{
  
  DisableInterrupts;      /*关全局中断*/
  RTIInit(); 
  PORTSInit();
  COMPInit();
  TIE_C0I=1;		        	/*输出比较0使能*/
  EnableInterrupts;				/*开全局中断*/
  for(;;);								/*循环等待*/

}

⌨️ 快捷键说明

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