time.c
来自「用Freescale的8位单片机做的RS232-CAN的通讯转换板.包含固件程序」· C语言 代码 · 共 67 行
C
67 行
#include "Time.h"
#include <MC68HC908GZ32.h> /* include peripheral declarations */
#include "main.h"
#define DisableTimer
#define EnableTimer
void(* TimerFun[4])();
//fBUS = 8MHz
//10ms
void InitTimer(void)
{
__RESET_WATCHDOG(); /* kicks the dog */
TimerFun[0] = (void(*)())0;
TimerFun[1] = (void(*)())0;
TimerFun[2] = (void(*)())0;
TimerFun[3] = (void(*)())0;
//10 * 8 * 1000=
//PS = 8
T2SC = 0x063; // TOF TOIE TSTOP TRST - PS2 PS1 PS0
// 0 1 1 1 0 1 1
// 1000
T2MODH = 0x027;
T2MODL = 0x010;
T2SC_TSTOP = 0; //开始
}
void SetTimer(void(*p)(),unsigned char n)
{
if(n >= 4)
return;
DisableTimer;
TimerFun[n] = p;
EnableTimer;
}
void KillTimer(unsigned char n)
{
if(n >= 4)
return;
DisableTimer;
TimerFun[n] = (void(*)())0;
EnableTimer;
}
__interrupt TIM2Overisr(void)
{
T2SC_TOF = T2SC_TRST;
if((unsigned int)TimerFun[0])
(*TimerFun[0])();
if((unsigned int)TimerFun[1])
(*TimerFun[1])();
if((unsigned int)TimerFun[2])
(*TimerFun[2])();
if((unsigned int)TimerFun[3])
(*TimerFun[3])();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?