📄 main.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 + -