📄 timer5.c
字号:
/*
*********************************************************************************************************
* 文件: Timer5.C
* 描述: Timer5 分配为系统节拍发生器.
* 编写: 深思 (001-12345@sohu.com).
*********************************************************************************************************
*/
#include "headers.h"
/*
*********************************************************************************************************
* 描述: 初始化系统节拍定时器, Timer5 产生 200 Hz 的时钟节拍.
*********************************************************************************************************
*/
void Init_Timer5 (void)
{
#define Prescaler2 25 // CLK = 1MHz.
#define MUX5 0
#define Count Fclk/(2*Prescaler2)/OS_TICKS_PER_SEC
TCON &= ~(0x07 << 24); // Stop Timer5.
TCFG0 = (TCFG0 & ~(0x0ff << 16)) | (Prescaler2 << 16);
TCFG1 = (TCFG1 & ~(0x0f << 20)) | (MUX5 << 20);
TCNTB5 = Count;
TCON |= (0x06 << 24); // 手动下载周期值,并设置为自动装载.
TCON = (TCON & ~(1 << 25)) | (1 << 24) ; // 启动.
INTMSK &= ~((1 << 26) + (1 << 8)); // 开中断屏蔽及全局屏蔽位.
}
/*
*********************************************************************************************************
* 描述: 系统节拍中断服务程序.
*********************************************************************************************************
*/
void __irq ISR_Timer5 (void)
{
OSIntEnter();
OSTimeTick(); /* 系统节拍服务程序. */
OSIntExit();
I_ISPC |= (1 << 8); /* clear the pending bit. */
}
/*
********************************************************************************************************
* End.
********************************************************************************************************
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -