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

📄 main.c

📁 基于arm---s3c44b0的定时器设置编程。希望对大家有用。
💻 C
字号:
/*****************************************************************************\
*                                                                             *
*  定时器测试                                                                 *
*                                                                             *
*  本程序测试定时器中断和实时钟Tick中断。                                     *
*  程序运行时可观察到两个LED均以1秒的周期闪烁。                               *
*  其中LED1靠通用定时器1中断驱动,LED2靠RTC Tick中断驱动。                    *
*                                                                             *
*  由于通用定时器以主时钟为时钟源,                                           *
*  因此该程序同时也检验了PLL是否正确设置为66MHz                               *
*                                                                             *
\*****************************************************************************/

#include "44b.h"
#include "LED.h"

// 通用定时器1中断服务程序
__IRQ__ void Timer1ISR(void)
{
	SetLED1(2);											// 翻转LED1
	rI_ISPC = BIT_TIMER1;								// 清中断状态标志
}

// RTC Tick中断服务程序
__IRQ__ void TickISR(void)
{
	SetLED2(2);											// 翻转LED2
	rI_ISPC = BIT_TICK;									// 清中断状态标志
}

// 安装中断服务程序
void InitISR()
{
	pISR_TIMER1 = (unsigned)Timer1ISR;					// 设置中断向量
	pISR_TICK = (unsigned)TickISR;

	// 设置Timer1
	rTCFG0 = 0x000000F9;	// the prescale of timer0, 1 = 250
	rTCFG1 = 0x00000040;	// MUX input for timer1 = 1/32
	rTCNTB1 = 4125;			// Timer1计数器 = 4125,周期0.5秒
	rTCON = 0x00000200;		// 装载计数值
	rTCON = 0x00000900;		// 启动Timer1

	rTICINT = 0xbf;			// RTC Tick中断使能, 周期0.5秒

	rINTMSK &= ~(BIT_GLOBAL | BIT_TIMER1 | BIT_TICK);	// 中断使能
}

void Main(void)
{
	InitLED();
	InitISR();

	while(1);
}

⌨️ 快捷键说明

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