📄 timer_m04_c2.c
字号:
/****************************************************************************************************/
/* $Header :
/* AUTHOR : TC PUI
/* FILE NAME: TIMER.C
/* PURPOSE : TIMER CONTROL
/* MODEL : 2003 CIS MODEL (KEYPAD)
/* Copyright (c) 2003 Sony Corporation All Rights Reserved
/****************************************************************************************************/
#define _TIMER_C
#include "_main_M04_C2.h"
/****************************************************************************************************/
/* FUNCTION : TimInitialize
/* PURPOSE : Timer Initialize
/* INPUT : None
/* RETURN VALUE : None
/****************************************************************************************************/
void TimInitialize(void)
{
PCR1.BIT.EN = CLEAR;
PCR1.BIT.UF = CLEAR;
PCR1.BIT.IR = CLEAR;
PCR1.BIT.TOE = CLEAR;
PCR1.BIT.IE = SET;
PCR2.BIT.FC = CLEAR; /* Use Interval Timer */
PCR2.BIT.RM = CLEAR; /* Reload Timer */
PCR2.BIT.C1 = CLEAR; /* Count Clock Period = 4tinst */
PCR2.BIT.C0 = SET; /* */
RLBR.BYTE = 78; /* 78 = 100us / [4tinst * 4 / 12.5MHz)] */
PCR1.BIT.EN = SET;
TimeUp.A10ms = CLEAR;
TimeUp.B10ms = CLEAR;
TimeUp.A1Sec = CLEAR;
Timer.A10ms = CLEAR;
Timer.B10ms = CLEAR;
Timer.AB5ms = CLEAR;
Timer.A1Sec = CLEAR;
TimerCount = CLEAR;
Timer1SCnt = CLEAR;
FirstTimer = CLEAR;
return;
}
/****************************************************************************************************/
/* FUNCTION : TimOff
/* PURPOSE : OFF Timer
/* INPUT : None
/* RETURN VALUE : None
/****************************************************************************************************/
void TimOff(void)
{
PCR1.BIT.EN = CLEAR;
PCR1.BIT.UF = CLEAR;
PCR1.BIT.IR = CLEAR;
PCR1.BIT.TOE = CLEAR;
PCR1.BIT.IE = SET;
PCR2.BIT.FC = CLEAR; /* Use Interval Timer */
PCR2.BIT.RM = CLEAR; /* Reload Timer */
PCR2.BIT.C1 = CLEAR; /* Count Clock Period = 4tinst */
PCR2.BIT.C0 = SET; /* */
RLBR.BYTE = 78; /* 78 = 100us / [4tinst * 4 / 12.5MHz)] */
PCR1.BIT.EN = CLEAR; /* Stop timer */
TimerCount = CLEAR;
Timer1SCnt = CLEAR;
FirstTimer = SET;
StopExIntEnable(); /* Enable Stop In interrupt */
return;
}
/****************************************************************************************************/
/* FUNCTION : TimControl
/* PURPOSE : software timer control
/* INPUT : None
/* RETURN VALUE : None
/****************************************************************************************************/
void TimControl(void)
{
if (FirstTimer==SET){
FirstTimer = CLEAR;
StopExIntDisable(); /* Disable Stop In interrupt */
TimInitialize();
}
if (TIMEUP_A) {
TIMEUP_A = CLEAR;
Timer.A10ms = SET;
if (++Timer1SCnt == 100){
Timer1SCnt = CLEAR;
TIMEUP_1 = SET;
}else{
TIMEUP_1 = CLEAR;
}
} else {
Timer.A10ms = CLEAR;
}
if (TIMEUP_1) {
TIMEUP_1 = CLEAR;
Timer.A1Sec = SET;
} else {
Timer.A1Sec = CLEAR;
}
return;
}
/****************************************************************************************************/
/* FUNCTION : Is10msATimeOver
/* PURPOSE : Software Timer A(10ms) Check Interface
/* INPUT : pointer of time(t)
/* RETURN VALUE : TRUE/FLASE = times up/ no times up
/****************************************************************************************************/
unsigned char Is10msATimeOver(unsigned int *t)
{
if (Timer.A10ms) {
if (t == CLEAR) {
return TRUE;
}else if (*t == CLEAR){
return TRUE;
}else if ((--(*t)) == CLEAR){
return TRUE;
}
}
return FALSE;
}
/****************************************************************************************************/
/* FUNCTION : Is10msATimeOver
/* PURPOSE : Software Timer A(10ms) Check Interface
/* INPUT : pointer of time(t)
/* RETURN VALUE : TRUE/FLASE = times up/ no times up
/****************************************************************************************************/
unsigned char Is1SecATimeOver(unsigned int *t)
{
if (Timer.A1Sec) {
if (t == CLEAR){
return TRUE;
}else if (*t == CLEAR){
return TRUE;
}else if ((--(*t)) == CLEAR){
return TRUE;
}
}
return FALSE;
}
/****************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -