📄 timer.c
字号:
#include "C8051f.h"
#include "Timer.h"
extern unsigned int Count1msInc;
extern unsigned char Count1ms;
extern unsigned char Count100ms;
extern unsigned char Count1s;
extern unsigned int TimeSecond;
extern unsigned int TimeMinute;
extern unsigned char EEPROMTime;
extern unsigned long Tick_100ms;
void Tick_Init()
{
Count1msInc = 0;
Count1ms = 0;
Count100ms = 0;
Count1s = 0;
TimeSecond = 0;
TimeMinute = 0;
EEPROMTime = 0;
Tick_100ms = 0;
}
void Timer0_Init (void)
{
CKCON |= 0x8;
TMOD |= 0x1; //16Bit
TR0 = 0; // STOP Timer0
TH0 = (-SYSCLK/1000) >> 8; // set Timer0 to overflow in 1ms
TL0 = -SYSCLK/1000;
TR0 = 1; // START Timer0
IE |= 0x2;
}
void Timer0_ISR (void) interrupt 1 //1ms
{
TH0 = (-SYSCLK/1000) >> 8;
TL0 = -SYSCLK/1000;
if (Count1ms)
{
Count1ms --;
}
Count1msInc ++;
if (Count100ms)
{
Count100ms --;
}
else
{
Count100ms = 100; //100ms
Tick_100ms ++;
if (Count1s)
{
Count1s --;
}
else
{
Count1s = 10; //1s
TimeSecond ++;
if (TimeSecond >= 60)
{
TimeSecond = 0; //1min
TimeMinute ++;
if(TimeMinute == 60)
{
TimeMinute = 0;
}
}
}
}
EEPROMTime ++ ;
}
void Timer3_Init(void)
{
TMR3CN = 0x00;
TMR3RLL = 0x00;
TMR3RLH = 0x4C;
TMR3L = 0x00;
TMR3H = 0x4C;
TMR3CN = TMR3CN | 0x04;
EIE2 = EIE2 | 0x01;
}
void timer3_interrupt(void) interrupt 14
{
}
void Delay1ms(unsigned char T)
{
Count1ms = T;
while (Count1ms);
}
void Delayms(unsigned int T)
{
Count1msInc = 0;
while(Count1msInc != T);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -