www.pudn.com > uCOS+GUI.rar > 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. 
******************************************************************************************************** 
*/