📄
字号:
#ifndef _HW_TIMER_H_
#define _HW_TIMER_H_
/*
* CPU埶懚僞僀儅丒儌僕儏乕儖乮GBA梡乯
* TM0傪巊梡
*/
#include "witz_gba.h"
#include "sys_defs.h"
#include "cpu_config.h"
#include "sys_config.h"
/*
* 僞僀儅妱傝崬傒偺妱傝崬傒斣崋
*/
#define INHNO_TIMER IRQ_NUMBER_TM3
/*
* 僞僀儅抣偺撪晹昞尰偺宆
*/
typedef UH CLOCK;
/*
* 僞僀儅
*/
#define TO_CLOCK(nume, deno) (TIMER_CLOCK * (nume) / (deno))
/*
* 愝掕偱偒傞嵟戝偺僞僀儅廃婜乮扨埵偼撪晹昞尰乯
*/
#define MAX_CLOCK ((CLOCK) 16780)
/*
* 惈擻昡壙梡僔僗僥儉帪崗傪庢傝弌偡嵺偺張棟帪娫偺尒愊傝抣
*乮扨埵偼撪晹昞尰乯
*/
#define GET_TOLERANCE 100
/*
* 僞僀儅偺婲摦張棟
*
* 僞僀儅傪弶婜壔偟丆廃婜揑側僞僀儅妱傝崬傒梫媮傪敪惗偝偣傞
*/
Inline void
hw_timer_initialize()
{
*TM3CNT = 0;
/*16.78MHz偱摦嶌偡傞偨傔16780僇僂儞僩偱1ms*/
*TM3D = 0xBE74;
*INTIE |= IRQ_BIT_TM3;
*TM3CNT = (TM_PRE_1 | TM_IRQ_ON | TM_START );
}
/*
* 僞僀儅妱傝崬傒梫媮偺僋儕傾
*/
Inline void
hw_timer_int_clear()
{
}
/*
* 僞僀儅偺掆巭張棟
*/
Inline void
hw_timer_terminate()
{
*TM3CNT &= ~TM_START; /* 僞僀儅傪掆巭 */
*INTIE &= ~INHNO_TIMER;/* 妱傝崬傒晄嫋壜*/
*INTIF |= IRQ_BIT_TM3; /* 儁儞僨傿儞僌丒價僢僩傪僋儕傾 */
}
/*
* 僞僀儅偺尰嵼抣偺撉傒偩偟
*
* 妱傝崬傒嬛巭嬫娫拞偱屇傃弌偡偙偲丏
*/
Inline CLOCK
hw_timer_get_current(void)
{
return(TO_CLOCK(TIC_NUME, TIC_DENO) - *TM3D);
}
Inline BOOL
hw_timer_fetch_interrupt(void)
{
return(*INTIF & IRQ_BIT_TM3);
}
#endif /* _HW_TIMER_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -