📄 timer.c
字号:
/***********************************************************************
撪 梕 : 僀儞僞乕僶儖僞僀儅乕丒僂僅僢僠僪僢僌僞僀儅乕
旛 峫 :
----------------------------------------------------------------
俠俹倀 : H8S/2144(HD64F2144FA20)
奐敪尵岅 : YCH8,YAH8(僀僄儘乕僜僼僩)
僞 僽 : 4
----------------------------------------------------------------
惢 嶌 :乮桳乯僄儖丒傾儞僪丒僄僼
************************************************************************/
/*----- 夵 斉 棜 楌 --------------------------------------------------
No | 擭 寧 擔 | 巵柤 | 撪 梕
01 | 1999-09-02 | 悰尨 | H8S/2144斉丂弶斉姰惉
02 | 2000-11-18 | 悰尨 | 挿帪娫懳墳丂夵斉
03 | 2001-02-20 | 悰尨 | MUU70梡丂尦僋儘僢僋18.432MHz偵曄峏
04 | 2001-03-24 | 悰尨 | start_timer()偺崅懍壔(媽巇條偵栠偡)
-----------------------------------------------------------------------*/
/********************************************
忦審僐儞僷僀儖
*********************************************/
//#define CLK18 // 19.6608MHz偺帪僐儊儞僩偵偡傞
/********************************************
僿僢僟
********************************************/
#include "H8S2144.h" // H8S2144 儗僕僗僞掕媊
#include "global.h" // 嫟捠掕媊
#include "extern.h" // 奜晹僾儘僩僞僀僾愰尵
/********************************************
僾儘僩僞僀僾愰尵
********************************************/
void itimer_init(void); // 僀儞僞乕僶儖僞僀儅弶婜壔
interrupt void IntTimer(void); // 僀儞僞乕僶儖僞僀儅妱崬
void start_timer(int no, unsigned long time); // 僞僀儅愝掕
int check_timer(int no); // 僞僀儅僠僃僢僋
void stop_timer(int no); // 僞僀儅掆巭
void wdt_init(void); // 僂僆僢僠僪僢僌僞僀儅僗僞乕僩
void wdt_clr(void); // 僂僆僢僠僪僢僌僞僀儅僋儕傾
/********************************************
僌儘乕僶儖曄悢愰尵
********************************************/
/********************************************
僜乕僗撪桳岠曄悢愰尵
********************************************/
static int t1tmf[T1MAX]; // 僞僀儅乕摦嶌僼儔僌
static unsigned long t1tmt[T1MAX]; // 僞僀儅乕僇僂儞僞僥乕僽儖
/************************************************************************
* 奣梫 : 僀儞僞乕僶儖僞僀儅乕弶婜壔 *
* 婡擻 : 僂僅僢僠僪僢僌僞僀儅1傪巊梡(WOVI1妱崬傒) *
* 堷悢 : void *
* 栠抣 : void *
* 揈梫 : H8S/2144(HD64F2144FA20) *
* 嶌惉 : 1999/10/16 Y.Sugawara *
************************************************************************/
void itimer_init(void)
{
int c; // 僇僂儞僞
unsigned short wk; // 儚乕僋
WDT1_TCNT_W = 0x5a00; // 僞僀儅僇僂儞僞1僋儕傾
wk = WDT1_TCSR_R; // 僟儈乕儕乕僪
WDT1_TCSR_W =
B16("1010010100100010"); // 僞僀儅僐儞僩儘乕儖僗僥乕僞僗儗僕僗僞
// |--A5--|00000000 弶婜抣
// |||||+++--- CKS2,1,0 僋儘僢僋慖戰 000:冇/2 001:冇/64
// ||||| 010:冇/128 011:冇/512 100:冇/2048
// ||||| 101:冇/8192 110:冇/32768 111:冇/131072
// ||||+--- RST/NMI 儕僙僢僩/NMI慖戰 0:NMI 1:儕僙僢僩
// |||+--- PSS 僾儕僗働乕儔慖戰 0:冇 1:冇SUB
// ||+--- TME 僞僀儅僀僱乕僽儖 0:掆巭 1:摦嶌
// |+--- WT/IT 僞僀儅儌乕僪慖戰 0:僀儞僞乕僶儖 1:僂僅僢僠僪僢僌
// +--- OVF 僆乕僶僼儘乕僼儔僌 1:僆乕僶乕僼儘乕
for(c = 0; c < T1MAX; c++)
{
t1tmt[c] = 0; // 僞僀儅僇僂儞僞僥乕僽儖僋儕傾
t1tmf[c] = 1; // 僞僀儅摦嶌僼儔僌僙僢僩
}
}
/************************************************************************
* 奣梫 : 僀儞僞乕僶儖僞僀儅妱崬傒 *
* 婡擻 : 妱崬傒枅偵僞僀儅乕僥乕僽儖傪 -1 偡傞 *
* 堷悢 : void *
* 栠抣 : void *
* 揈梫 : H8S/2144(HD64F2144FA20) *
* 嶌惉 : 2001/03/24 Y.Sugawara *
************************************************************************/
// 僐儊儞僩丗CLK=18.432MHz,T1MAX=10偱偺幚峴帪娫=27uSec(ROM壔丄幚應)
interrupt void IntTimer(void)
{
int c; // 僇僂儞僞
//DEBUG
// P8DR &= (~BIT6); // 徚摂
// 僞僀儅乕僙僢僩
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -