📄 timer.c
字号:
//**************************************************************************************************************************
#include <c8051F020.h>
#include "HEAD.H"
//**************************************************************************************************************************
void Timer3_Init(void)
{
TMR3CN = 0x04; // TR3 = 1;运行控制位.0:停止 1:启动
// T3M = 0;使用系统时钟的12分频
// T3XCKL= 0;时钟源由T3M决定
//TMR3RLH = 0x63; // 初始值:0x63BF=15535=25ms
//TMR3RLL = 0xBF;
TMR3RLH = 0x3C; // 初始值:0x3CB0=15535=25ms
TMR3RLL = 0xB0;
EIE2 |= 0x01; // Enable Timer3 Interrupt.
}
//**************************************************************************************************************************
// 定时器3用于25ms定时
void Timer3_Interrupt(void) interrupt 14
{
TMR3CN &=~0x80; // 清除中断标志位
Timer3++;
if(Timer3%RunLedFre==0x00) //
{
LED1_CHANGE;
DI_Station();
}
HollSpaceTime++;
if(HollSpaceTime>=40)
{
HollSpaceTime=0x00;
}
if(WorkStation==0xBB)
{
if(Timer3%TestTime==0x00)
{
HollSigNum=TH2*256 + TL2;
RTUaddress4[6]=HollSigNum>>8;
RTUaddress4[7]=HollSigNum;
HollDate[HollDataNum]=HollSigNum;
HollDataNum++;
if(HollDataNum>=HollDateLong)
{
WorkStation=0x00;
}
}
}
// 瞬时转速测试
if(TempT2==TL2)
{
Tem2Con++;
}
else
{
if(Tem2Con<=40*2)
{
InstantaneousSpeed=60*40/(float)Tem2Con;
}
TempT2=TL2;
Tem2Con=0x00;
}
if(Tem2Con>40*2)
{
InstantaneousSpeed=0;
TempT2=TL2;
Tem2Con=0x00;
}
}
//**************************************************************************************************************************
void Timer0_Init(void)
{
TMOD |= 0x01; // 方式1:T0:16位定时器
}
//**************************************************************************************************************************
void Timer0_ReSet(void)
{
TH0 = 0x8C; // 初始值:0xFCBE=64702=0.4ms
TL0 = 0xBE;
ET0 = 1 ; // Enable TIMER0 Interrupt.
TR0 = 1; // 定时器0运行控制位
}
//**************************************************************************************************************************
void Timer0_Interrupt(void) interrupt 1
{
TF0 = 0; // 软件清除标志位
TR0 = 0; // 定时器0运行控制位
ET0 = 0; // 禁止T0中断
RTU_Data();
ComFlag=0x00;
}
//**************************************************************************************************************************
// The End
//**************************************************************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -