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

📄 clock.c

📁 iar公司的s3c44b0x评估板的源程序
💻 C
字号:
#include "systypes.h"
#include "44b0.h"
#include "clock.h"

static UINT32 sysclocks;

#define OS_TICKS_PER_SEC 200

#define LEDBLINK
#ifdef  LEDBLINK
#define LED(pattern) (rPDATE=(rPDATE & 0x10f) | ((pattern & 0x0f) << 4))
static  UINT32 ledcnt = 0, ledpattern = 0;
#endif

#define TIMER0COUNT	(CLOCKS_PER_SEC/OS_TICKS_PER_SEC)   // timer0 counts per tick

static void __vTimer0Isr (void)
{
        rI_ISPC = BIT_TIMER0;       // clear pending bit of timer0
		sysclocks += TIMER0COUNT;
#ifdef LEDBLINK
        ledcnt ++;
        if (ledcnt % 200 == 0) LED(ledpattern ++);
#endif
        return;
}

void StartSysClock (void)
{
	sysclocks = 0;
        pISR_TIMER0 = (unsigned)__vTimer0Isr;

	//dead zone = 0, prescaler value0 = 25
	rTCFG0 = 24;
	//no dma select, mux input0 = 1/2, timer0 input clock = 50000000/25/2 = 1000000Hz
	rTCFG1 = 0x00000000;
	//set T0 count
	rTCNTB0 = TIMER0COUNT;
	//update T0
	rTCON = 0x00000002;
	//autoreload and start timer0
	rTCON = 0x00000009;
	//non-vectored, IRQ enabled, FIQ disabled
	rINTCON = 0x5;
	//unmask TIMER0 interrupt
	rINTMSK = ~(BIT_TIMER0 | BIT_GLOBAL);

    return;
}

clock_t GetSysClock (void)
{
	return (sysclocks + (TIMER0COUNT - rTCNTO0));
}

⌨️ 快捷键说明

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