⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timer.c

📁 本source code 為s3c4510的bootloader
💻 C
📖 第 1 页 / 共 3 页
字号:
/*************************************************************************//*                                                                       *//* FILE NAME                                      VERSION                *//*                                                                       *//*      timer.c                    KS32C5000, KS32C50100   : version 1.0 *//*                                                                       *//* COMPONENT                                                             *//*                                                                       *//*                                                                       *//* DESCRIPTION                                                           *//*                                                                       *//*                                                                       *//* AUTHOR                                                                *//*                                                                       *//*      Young Sun KIM, Samsung Electronics, Inc.                         *//*                                                                       *//* DATA STRUCTURES                                                       *//*                                                                       *//*                                                                       *//* FUNCTIONS                                                             *//*                                                                       *//*   Timer basic library functions:                                      *//*                                                                       *//*    TimerInit      Initialize the timer with 1 sec unit                *//*    tmReset        Clear timer counter and interrupt pending,          *//*                   Restart timer                                       *//*    tmCntr         Change the timer mode,periode,interrupt             *//*    TimeStopCheck  Timer start & stop check in polling method          *//*    PrtSysTime     System time will be displayed                       *//*    GetSysTime     get system time display string                      *//*    tm0isr         timer0 interrupt service routine                    *//*    tm1isr         timer1 interrupt service routine                    *//*                                                                       *//* DEPENDENCIES                                                          *//*                                                                       *//*                                                                       *//* HISTORY                                                               *//*                                                                       *//*         NAME            DATE                    REMARKS               *//*                                                                       *//*        in4maker      09-15-1998      Created initial version 1.0      *//*                                                                       *//*************************************************************************//* 			*//* Modified by 		*//* Dmitriy Cherkashin 	*//* dch@ucrouter.ru	*//* 2002			*//*			*/#include "ks32c50.h"#include "evm50100.h"// uncomment to enable TOUTn pins //#define TIMER_TOUTvolatile unsigned int  clk_tick0 = 0;  		/* time tick for timer 0 */volatile unsigned int  clk_tick1 = 0;  		/* time tick for timer 0 */volatile unsigned int  WatchDogStatus = 0;  /* Timer0,1 can be used for system real time clock */TIME tm0 =  {  0	,				/* millisec */  0	,				/* sec */  0	,				/* min */  0	,				/* hour */  0	,				/* month day */  0	,				/* month */	  0					/* year */ };TIME tm1 =  {  0	,				/* millisec */  0	,				/* sec */  0	,				/* min */  0	,				/* hour */  0	,				/* month day */  0	,				/* month */	  0					/* year */ };void TimerStart(int t){ if(t == 1)  {   TMOD |= TMOD1_EN;  } else if(t == 0)  {   TMOD |= TMOD0_EN;  }} void TimerStop(int t){ if(t == 1)  {   TMOD &= ~TMOD1_EN;  } else if(t == 0)  {   TMOD &= ~TMOD0_EN;  }}  /*************************************************************************//*                                                                       *//* NAME : tmConfig()                                                     *//*                                                                       *//* FUNCTIONS : Monitoring the timer related system registers.            *//*             and start & stop timer control.                           *//*                                                                       *//* EXAMPLES :                                                            *//*                                                                       *//* VARIABLES USED                                                        *//*                                                                       *//*                                                                       *//* HISTORY                                                               *//*                                                                       *//*         NAME            DATE                    REMARKS               *//*                                                                       *//*        in4maker      06-07-1999      Created initial version 1.0      *//*                                                                       *//*************************************************************************/static void TimerConfigView(void){//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Print("\nTIMER 0 Status");// TMOD0_EN // Timer 0 enable ////////////////////////////////////////////////// Print("\nTimer 0 enable..............%s",   (TMOD & TMOD0_EN) 	?     "1(enabled."		:  "0(disabled)"  );// TMOD0_TOGGLE // interval mode /////////////////////////////////////////////// Print("\nTimer 0 Toggle mode.........%s",  (TMOD & TMOD0_TOGGLE)  ? "1(toggle mode)"	: "0(interval mode)" );// [2] Timer 0 initial TOUT0 value (TCLR0) ///////////////////////////////////// Print("\nTimer 0 initial TOUT0 value.%s",  (TMOD & TMOD0_TOUT) 	?  "1"			:  "0" );  Print("\nTDATA0......................0x%08x",TDATA0); Print("\nTCNT0.......................0x%08x",TCNT0 );//  Print("\nTimer0 TOUT0 output.(P16)...%s"	,  ((IOPCON & IOPCON_TOEN0_EN)  && 	// T0UT0 enabled    (IOPMOD & 0x10000)) 	?		// P16 output   "enabled"		:   "disabled"  ); Print("\nTimer0 INT mode.............%s"	,  (INTMODE & TIMER0_INT)?	   "FIQ"		:		// FIQ mode    "IRQ"  ); Print("\nTimer0 interrupt enabled....%s"	,  (INTMASK & TIMER0_INT)?   "(disabled)"	:   "(enabled)"  );//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Print("\nTIMER 1 STATUS");// TMOD1_EN // Timer 1 enable ////////////////////////////////////////////////// Print("\nTimer 1 enable..............%s",   (TMOD & TMOD1_EN) 	?     "1(enabled."		:  "0(disabled)"  ); // Timer1 Toggle/Interval mode ///////////////////////////////////////////////// Print("\nTimer 1 Toggle mode.........%s",  (TMOD & TMOD1_TOGGLE) ?  "1(toggle mode)"	:  "0(interval mode)" );// Timer 1 Initial TOUT1 value ///////////////////////////////////////////////// Print("\nTimer 1 Initial TOUT1 value.%s",  (TMOD & TMOD1_TOUT)	?  "1"			:  "0" );// Print("\nTDATA1......................0x%08x",TDATA1); Print("\nTCNT1.......................0x%08x",TCNT1);// Print("\nTimer1 TOUT1 output.(P17)...%s",  ((IOPCON & IOPCON_TOEN1_EN) && 		// TOUT1 enabled    (IOPMOD & 0x20000))		?		// p17 output   "1(enabled)"	:   "0(disabled)"  );// Print("\nTimer1 INT mode.............%s"	,  (INTMODE & TIMER1_INT)	?   "FIQ"	:   "IRQ"  );// Print("\nTimer1 interrupt enabled....%s"	,  (INTMASK & TIMER1_INT) 	?   "(disabled)"	:   "(enabled)"  );}/*************************************************************************//*                                                                       *//* NAME : rtc_run()                                                      *//*                                                                       *//* FUNCTIONS : timer0 or 1 run test function.                            *//*                                                                       *//* EXAMPLES :                                                            *//*                                                                       *//* VARIABLES USED                                                        *//*                                                                       *//*                                                                       *//* HISTORY                                                               *//*                                                                       *//*         NAME            DATE                    REMARKS               *//*                                                                       *//*        in4maker      06-07-1999      Created initial version 1.0      *//*                                                                       *//*************************************************************************/static void rtc_run(void){ U8 dev;  			/* for to select timer device 0,1 */ U8 ch;   			/* variable for io consol */// Select timer device. Timer0 or Timer 1 ////////////////////////////////////// do   {   Print("\nSelect timer[0/1]");   dev = get_upper();  }  while(dev != '1' && dev != '0');// Now Start timer for test //////////////////////////////////////////////////// Print("\nTo exit, enter the Esc key on keyboard."); Print("\nTo start timer press any key.\n"); ch = get_upper(); if(ch == KEY_ESC)  {   return;  } if(dev == '1')   {   TimerInit(1,(ONE_SECOND/TICKS_PER_SECOND));   TimerStart(1);  } else   {   TimerInit(0,(ONE_SECOND/TICKS_PER_SECOND));   TimerStart(0);  } while(1)   {   char * s;   TIME tm;    if(dev == '1')     { /* selected TIMER1 */      GetSysTime(1, &tm);		/* get system time from TIMER1 */     s = "TIMER1 time";			/* output string for TIMER1 */     }   else     {/* selected TIMER0 */     GetSysTime(0, &tm);		/* get system time from TIMER0 */     s = "TIMER0 time";			/* output string for TIMER0 */    }   Print    (     "\n%s is %d:%d:%d.%d",       s		,      tm.tm_hour	,      tm.tm_min		,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -