s3c44b0定时器使用

来源:百度知道 编辑:UC知道 时间:2024/06/18 08:28:50
想用这个实现定时功能,但是不知道怎么能想VB中的timer表一样,希望能给提供一个例子!

/*函数功能: 定时器 1 初始化 */
void Timer1_Init(void)
{
pISR_TIMER1 = (unsigned)Timer1Done;
rINTMSK &=~(BIT_GLOBAL|BIT_TIMER1);
}

/*函数功能: 启动定时器 1 */
void Timer1_Start(int n_us, char is_autoload)
{
rTCFG0 = 0x1017f; //预分频 = 1
rTCFG1 = 0x0444444; //除法器 = 32

rTCNTB1 = n_us;
rTCMPB1 = 0;

if(is_autoload)
{
rTCON = 0xa00;
rTCON = 0x900; //自动加载禁止
}
else
{
rTCON = 0x200;
rTCON = 0x100; //加载禁止
}
}

/*函数功能: 关闭定时器 1 */
void Timer1_Stop(void)
{
rTCON &= 0xfffff0ff; //TIMER1停止
rPDATE = rPDATE & 0x1EF; //停止响铃
}

/*函数功能: 定时器1中断 */
void __irq Timer1Done(void)
{
rI_ISPC = BIT_TIMER1; //清空挂起的 T1 中断
Timer1_done = 1; //
//自己要实现的功能语句
}