📄 timer.c
字号:
#define __TIMER_H__
#include "Config.h"
/********************************************************************************************************
**函数名称:T0Delay5ms
**函数功能:使用T0延时5ms@40MHz
**输 入:uchar DelayLoops 控制延时长短
**输 出:无
********************************************************************************************************/
/*
void T0Delay5ms(uchar DelayLoops)
{
PERIPHEN1 |= BIT0; //使能T0
//------------------------------------------------------
//40MHz系统时钟,预先4分频,=>10MHz,5ms=>计数值为50000
//------------------------------------------------------
TH0 = 0x3C;
TL0 = 0xB0; //5ms定时值 = 65536 - 50000
T0T1CFG &= ~(BIT5 | BIT1 | BIT0);
T0T1CFG |= 0x00; //T0门控禁止;输出禁止;16位操作模式
T0T1CLKCFG &= 0xF0;
T0T1CLKCFG |= 0x02; //T0时钟4分频
T0CON = 0x00; //向上计数,门控禁止,做计数器用
T0CON |= BIT2; //T0运行
do
{
#ifdef DOWNLOAD
while((T0CON & BIT7) == 0); //等待定时到
#endif
TH0 = 0x3C;
TL0 = 0xB0;
T0CON &= ~BIT7; //清标志
DelayLoops --;
}
while(DelayLoops != 0);
}
*/
/********************************************************************************************************
**函数名称:T1Delay5ms
**函数功能:使用T1延时5ms@40MHz
**输 入:uchar DelayLoops 控制延时长短
**输 出:无
********************************************************************************************************/
/*
void T1Delay5ms(uchar DelayLoops)
{
PERIPHEN1 |= BIT1; //使能T1
//------------------------------------------------------
//40MHz系统时钟,预先4分频,=>10MHz,5ms=>计数值为50000
//------------------------------------------------------
TH1 = 0x3C;
TL1 = 0xBF;
T0T1CFG &= ~(BIT6 | BIT4 | BIT3 | BIT2);
T0T1CFG |= 0x00; //T1门控禁止,时钟源为系统时钟,输出禁止,16位模式
T0T1CLKCFG &= 0x0F;
T0T1CLKCFG |= 0x20; //T1时钟4分频
T1CON = 0x00; //向上计数,门控禁止,做计数器用
T1CON |= BIT2; //T1运行
do
{
#ifdef DOWNLOAD
while((T1CON & BIT7) == 0);
#endif
TH1 = 0x3C;
TL1 = 0xB0;
T1CON &= ~BIT7;
DelayLoops --;
}
while(DelayLoops != 0);
}
*/
/********************************************************************************************************
**函数名称:T2Init
**函数功能:使用T2做中断延时前的初始化
**输 入:无
**输 出:无
********************************************************************************************************/
void T2Init(void)
{
PERIPHEN1 |= BIT2; //使能Timer2
T2CON = 0x00; //Timer2捕获使能
//定时器功能
//定时器停止
//外部门控禁止
//输出翻转禁止
//向上计数
//外部门控标志
//溢出标志
TH2 = 0x3C;
TL2 = 0xB0; //预置数
T2CLKCFG = 0x03; //系统时钟源
//输出禁止
//时钟64分频
T2CON |= BIT2; //Timer2开始运行
}
/********************************************************************************************************
**函数名称:LEDFlashDelay
**函数功能:未用的LED延时程序,会根据"Confug.h"的设置做自动设置
**输 入:无
**输 出:无
********************************************************************************************************/
/*
void LEDFlashDelay(void)
{
#define DELAYLOOP (OSCCLK / 200000)
T0Delay5ms(DELAYLOOP);
//T1Delay5ms(DELAYLOOP);
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -