www.pudn.com > 4510b_dma.rar > timer.h


/*************************************************************************/ 
/*                                                                       */ 
/* FILE NAME                                      VERSION                */ 
/*                                                                       */ 
/*      timer.h                    		 KS32C50100   : version 1.0 */ 
/*                                                                       */ 
/* COMPONENT                                                             */ 
/*                                                                       */ 
/*                                                                       */ 
/* DESCRIPTION                                                           */ 
/*                                                                       */ 
/*                                                                       */ 
/* DATA STRUCTURES                                                       */ 
/*                                                                       */ 
/*                                                                       */ 
/* FUNCTIONS                                                             */ 
/*                                                                       */ 
/*   Timer function header file:                                         */ 
/*                                                                       */ 
/*                                                                       */ 
/* DEPENDENCIES                                                          */ 
/*                                                                       */ 
/*                                                                       */ 
/*************************************************************************/ 
#ifndef _TIMER_H_ 
#define _TIMER_H_ 
 
#include "snds.h" 
 
/*********************************************************/ 
/*	       IDENTIFIER FOR TIMER DEVICE               */ 
/*********************************************************/ 
#define  TIMER_DEV0   0 
#define  TIMER_DEV1   1 
 
/* Timer Mode Register */ 
 
/*********************************************************/ 
/*	       TIMER MODE REGISTER                       */ 
/*********************************************************/ 
#define  TM0_RUN      0x01  /* Timer 0 enable */ 
#define  TM0_TOGGLE   0x02  /* 0, interval mode */ 
#define  TM0_OUT_1    0x04  /* Timer 0 Initial TOUT0 value */ 
#define  TM1_RUN      0x08  /* Timer 1 enable */ 
#define  TM1_TOGGLE   0x10  /* 0, interval mode */ 
#define  TM1_OUT_1    0x20  /* Timer 0 Initial TOUT0 value */ 
 
 
/*********************************************************/ 
/*	USABLE MACROS FUNCTIONS  & DATA STRUCTURES       */ 
/*********************************************************/ 
 
#define Timer0Stop()        (TMOD &= ~TM0_RUN) 
#define Timer1Stop()        (TMOD &= ~TM1_RUN) 
 
#define Timer0Start()       (TMOD |= TM0_RUN) 
#define Timer1Start()       (TMOD |= TM1_RUN) 
 
#define TimerStart(t)       ((t)? Timer1Start():Timer0Start()) 
#define TimerStop(t)        ((t)? Timer1Stop(): Timer0Stop()) 
 
#define tmDATA(t)           (t*0.001*fMCLK-1)  // t is time tick,unit[ms] 
#define t_data_ms(t)        (t*0.001*fMCLK-1)  // t is time tick,unit[ms] 
#define t_data_us(t)        (t*0.000001*fMCLK-1)  // t is time tick,unit[us] 
 
typedef struct { 
      void (*TIMER_Lisr)();   /* TIMER Interrupt Function Pointer */ 
      uint32 TM_CHANNEL;      /* TIMER DEVICE */ 
      uint32 TM_MODE;         /* Timer mode register */ 
      uint32 TM_DATA;         /* Timer data,timer range is 1~0xffffffff */ 
      uint32 TM_OUT_PORT;     /* Enable timer output port */ 
}TM_PARAM;  
 
 
typedef struct { 
      volatile unsigned int tm_sec; 
      volatile unsigned int tm_min; 
      volatile unsigned int tm_hour; 
      volatile unsigned int tm_mday; 
      volatile unsigned int tm_mon; 
      volatile unsigned int tm_year; 
}TIME;  
 
 
/*********************************************************/ 
/*              TIMER LIBRARY FUNCTIONS (timer.c)        */ 
/*********************************************************/ 
extern void   tm_init(int /*timer dev*/,int /*timer data*/); 
extern void   tmReset(int /* timer device number */); 
extern void   ClrTimeVar(int); 
extern void   tmCntr(TM_PARAM * /* timer parameter */); 
extern void   PrtSysTime(int /*timer*/,char * /*message*/); 
extern char   *GetSysTime(int /*timer*/); 
extern uint32 TimeStopCheck(int /*timer */) ; 
extern void   WaitTime_ms(int /*dev*/,int/*ms */); 
extern void   tm0isr(void);    /* timer0 interrupt service */ 
extern void   tm1isr(void);    /* timer1 interrupt service */ 
 
/*********************************************************/ 
/*            WATCHDOG FUNTIONS (timer.c)                */ 
/*********************************************************/ 
extern void   WatchDogFunc(int /*reconf flag*/); /* WDT test function */ 
extern void   WatchDogSetup(void);  /* WDT initialize & start */ 
extern void   WatchDogReload(void); /* WDT counter value reloaded */ 
extern void   WatchDog0Lisr(void);  /* TIMER0 interrupt service */ 
extern void   WatchDog1Lisr(void);  /* WDT interrupt service  */ 
 
/*********************************************************/ 
/*      TIMER EVALUATION TEST FUNCTIONS(timer_test.c)    */ 
/*********************************************************/ 
extern void   WatchDogTest(void);   /* WDT test function */ 
extern void   TimerTest(void); 
extern void   TimerTestItem(void); 
extern void   rtc_run(void); 
extern void   tmConfig(void); 
 
/*********************************************************/ 
/*            EXTERNAL FUNCTION DEFINES                  */ 
/*********************************************************/ 
extern void   Reset_Boot_Rom(void); 
extern void   StartUserPgm(void); 
extern void   Reset_Handler(void); 
extern void   C_Entry(void); 
 
 
#endif  /* _TIMER_H_ */