📄 timer.c
字号:
#include "drv_vic.h"#include "includes.h"#include "timer.h"void TMR_ms_isr(void);void TMR_Initialize(void){ //DRV_VIC_AttachISR( VECTOR_TIMER1, INT_TMR1_2, TMR_ms_isr); DRV_VIC_AttachISR( VECTOR_TIMER1, INT_TMR1_2, OSTickISR); /* %jp{僞僀儅摦嶌奐巒} */ *Timer1Control = 0x20; *Timer1Load = 76205; *Timer1BGLoad = 76205; *Timer1Control = 0xa0; DRV_VIC_Enable( INT_TMR1_2, TRUE);#if 0 T_CISR cisr; /* %jp{妱傝崬傒僒乕價僗儖乕僠儞惗惉} */ cisr.isratr = TA_HLNG; cisr.exinf = 0; cisr.intno = INT_TMR1_2; cisr.isr = (FP)TMR_ms_isr; acre_isr(&cisr); ena_int(INT_TMR1_2); /* %jp{僞僀儅摦嶌奐巒} */ *Timer1Control = 0x66; *Timer1Load = 75938; //about 10ms *Timer1BGLoad = 75938; *Timer1Control = 0xe6;#endif}unsigned long g_msCounter = 0;void TMR_ms_isr(void){ *Timer1IntClr = 1; *((volatile UW *)0x10140030) = 0x00000000; g_msCounter+=TIMER_STICK;}unsigned long SetTimeout(unsigned long ms){ return g_msCounter + ms;}void ReSetTimeCounter(){ g_msCounter = 0;}int CheckTimeout(unsigned long timeout){ if(g_msCounter> timeout) return 1; return 0;}void DisableTMR(void){ DRV_VIC_Enable( INT_TMR1_2, FALSE); *Timer1Control = 0x66;}unsigned long GetmsTimer(void){ return g_msCounter;}void Sleep(int ms){ unsigned long start_time = GetmsTimer(); while( (start_time+ms) > GetmsTimer() );}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -