📄 tmroinitial.c
字号:
/*copyright(c)泰永科技股份有限公司电源事业部
*All rights reserved
*
*文件名称:tmroinitial.c
*文件标示:见配置管理计划书
*摘 要:简要描述文件内容
*
*当前版本:
*作 者:
*完成日期:
*
*取代版本:
*原作者 :
*完成日期:
*/
#include <pic18.h>
#include "inc.h"
//#include <stdio.h>
//timer0 init
//10ms interrupt
//union adres adresult;
void tmr0init()
{
T0CON = 0x82; //8分频 ;0xCx is 8bit timer
TMR0IE = 1; //使能timer0 interrupt
TMR0IF = 0;
TMR0H = (unsigned char)tmr0h_bits;//unsigned char 类型转换
TMR0L = (unsigned char)tmr0l_bits;//
//GIE = 1;
}
/*
*函数介绍:
*输入参数:
*输出参数:
*返回值:
*/
void tmr1init()
{
T1CON = 0x39;
TMR1IE=1; //TMR1中断允许
TMR1IF=0; //清除TMR1的中断标志
TMR1H = (unsigned char)tmr0h_bits;
TMR1L = (unsigned char)tmr0l_bits;
}
/*
*函数介绍:
*输入参数:
*输出参数:
*返回值:
*/
void interrupt tmr0_ISR(void)
{
if (TMR0IF == 1)
{
TMR0H=(unsigned char)tmr0h_bits; // FFFF-F63B=2500采用 8M 晶振,指令周期0.5微秒
TMR0L=(unsigned char)tmr0l_bits; // 对TMR0写入10ms定时调整值2500
TMR0IF=0;
if (bak_cnt!=0)
bak_cnt--;
else
lcd_blk = 0;
if (spk_cnt!=0)
spk_cnt--;
else
// spk=0;
sle_2hz++;
if (sle_2hz>f2hz)//250ms闪动一次
{
sle_2hz = 0;
f2hz_flag++;
}
sle_1hz++;
if (sle_1hz>f1hz)//500ms闪动一次
{
sle_1hz = 0;
f1hz_flag++;
}
sle_5s++;
if (sle_5s>f5s)//5s切换一次
{
sle_5s = 0;
f5s_flag++;
}
dis_4hz++;
if (dis_4hz>121)
{
dis_4hz = 0;
}
dis_3hz++;
if (dis_3hz>91)
{
dis_3hz = 0;
}
dis_2hz++;
if (dis_2hz>451)
{
dis_2hz = 0;
}
dis_1hz++;
if (dis_1hz>691)
{
dis_1hz = 0;
}
if (tm1s!=0)
tm1s--;
else
flag_1s = 1;
if (tm2s!=0)
tm2s--;
else
flag_2s = 1;
if (tm3s!=0)
tm3s--;
else
flag_3s = 1;
if (return_cnt!=0)
return_cnt--;
else
scr_id = 0;
if (refer_cnt!=0)
refer_cnt--;
else
refer_flag = 0;
if (alam_cnt!=0)
alam_cnt--;
else
spk = 0;
if(amper_count!=0)
amper_count--;
else
amper_flag=1;
if(temper_count!=0)
temper_count--;
else
temper_flag=1;
if(air_count!=0)
air_count--;
else
air_flag=1;
if(smoke_count!=0)
smoke_count--;
else
smoke_flag=1;
}
if(TMR1IF ==1)
{
TMR1H=(unsigned char)tmr0h_bits; // FFFF-F63B=2500采用 8M 晶振,指令周期0.5微秒
TMR1L=(unsigned char)tmr0l_bits;
TMR1IF = 0;
sle_4hz++;
if (sle_4hz > 12)//125ms闪动一次
{
sle_4hz = 0;
f4hz_flag++;
}
}
if(ADIF) //AD转换完成
{
ADIF=0; // 清除中断标志
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -