📄 time.c
字号:
#ifndef _Include
#include "Include.h"
#endif
/*********************************************************************************************************
** 函数名称: TimeInit0
** 功能描述: 定时器0初始化
** 说明:
********************************************************************************************************/
void TimeInit0(INT32U xus)
{
/* 初始化定时器0,实现1S定时
Fcclk=Fosc*5=11.0592MHz*5=55.296MHz
Fpclk=Fcclk/4=55.296/4=13.824MHz
*/
INT32U i;
i=(Fpclk/1000000); //每微秒频率 约等于
if(xus==0) xus=1;
i*=xus;
T0PR = i; // 设置定时器分频为13分频,约1US
T0MCR = 0x03; // 匹配通道0匹配中断并复位T0TC
/* 设置定时器0中断IRQ */
VICVectAddr10 = (INT32U)IRQ_Time0; // 设置中断服务程序地址向量
VICVectCntl10 = (0x20 | VIC_TIME0); // 定时器0中断通道分配4优先级(向量控制器4)
VICIntEnable |= INT_TIME0; // 使能定时器0中断
}
/*********************************************************************************************************
** 函数名称: Time0_Startup
** 功能描述: 定时器0启动
** 说明:
********************************************************************************************************/
void Time0_Startup(int timing)
{
T0MR0 = timing; // 比较值
T0TCR = 0x03; // 复位T0
T0TCR = 0x01; // 启动T0
}
/*********************************************************************************************************
** 函数名称: Time0_Read
** 功能描述: 定时器0停止并读出当前计数值
** 说明:
********************************************************************************************************/
INT32U Time0_Read(void)
{
T0IR = 0x01; // 清除0通道中断
T0TCR = 0x00; // 禁止0计数器
return(T0TC);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -