📄 timer.c
字号:
#include "config.h"
#include "define.h"
#include "oled.h"
extern CURRENT_DEVICE_INFO current_device_info;
extern uint8 flag;
extern uint16 count;
/****************************************************************************
* 名称:Time0Init()
* 功能:初始化定时器0,定时时间为1S,并使能中断。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void Time0Init(void)
{ /* Fcclk = Fosc*4 = 11.0592MHz*4 = 44.2368MHz
Fpclk = Fcclk/4 = 44.2368MHz/4 = 11.0592MHz
*/
T0PR = 10; // 设置定时器0分频为10分频,得1105920Hz
T0MCR = 0x03; // 匹配通道0匹配中断并复位T0TC
T0MR0 = 110592; // 比较值(1S定时值)
T0TCR = 0x03; // 启动并复位T0TC
T0TCR = 0x01;
//定时100ms
}
/****************************************************************************
* 功能:定时器 0 中断回掉函数
* 入口参数:无
* 出口参数:无
****************************************************************************/
void IRQ_Time0_fn(void)
{
flag++;
if(flag==10)//测试每秒程序main中的while能够跑多少个循环,现在能够跑50k次每秒
{//RS232_SendByte((uint8)(count>>8));
//RS232_SendByte((uint8)(count&0xff));
count=0;
flag=0;
}
T0IR = 0x01; // 清除中断标志
current_device_info.millisecond=current_device_info.millisecond+1;
if(current_device_info.millisecond==10)current_device_info.millisecond=0;
// display_millisecond(oled_display_info.millisecond/100);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -