📄 main.c.bak
字号:
#include <switch.h>
void SystemInit();
bit TimeTickFlag;
main()
{
idata UCHAR time=1;
SystemInit();
Rs232Init();
TelOperateInit();
SoundInTelInit();
CommunicationInit();
rs232write(0xAA);
rs232write(0x55);
rs232write(0x00);
rs232write(0xFF);
rs232write(0x88);
StarDecordDTMF(1);
EA=1;
while(1)
{
rs232loop();
DecordDTMF();
if(TimeTickFlag)
{
TimeTickFlag=0;
//添加时间片处理函数;
TelOperateLoop();
DealHintSound();
time++;
}
//if((time%10)==0){MessageDeal();} //消息处理
if(time>=100) //0.2秒 计时
{
ResResume(); //系统资源归原
MessageDeal(); //消息处理
ExtTimeDeal(); //分机时间处理
SoundWayLoop();
time=0;
}
}
}
void SystemInit()
{
//8816 初始状态
idata int i;
for(i=0;i<1000;i++){;}
SoundSwitchStorbe=0;
PORT=0;
//quiet all extension tel
PORT=0; //分机振铃控制
EnRingPort=0;
EnRingPort=1;
EnRingPort=0;
PORT=0; //外部取线控制
EnTakeLine=0;
EnTakeLine=1;
EnTakeLine=0;
EnDetectHold=1;//检测分机摘、挂机状态
EnDetectRing=1;//检测外线振铃状态
EnDTMFDecordOut1=0;
EnDTMFDecordOut2=0;
EnDTMFCreate=1; //DTMF产生许可
EnableE2ROM=0;
PORT=0xff;
SCONF=SCONF|ExtRamEnable;
//用于系统时间,定时3ms
TMOD=TMOD|0x01;
TH0=SystemTimeConst>>8;
TL0=SystemTimeConst;
TR0=1;
ET0=1; //开定时器0中断
TimeTickFlag=0; //时间片处理函数
//系统软件初始化
WriteSYSTEM(sp_TakeLineAtHome,c_TakeLineAtHome); //在家铃声设置
WriteSYSTEM(sp_TakeLineOutside,c_TakeLineOutside); //离家铃声设置
WriteSYSTEM(sp_SystemState,c_SS_none); //系统状态
}
void SystemTimeTick() interrupt 1
{
//时间常数重载
TR0=0;
TH0=(SystemTimeConst+8)>>8;
TL0=(SystemTimeConst+8);
TR0=1;
TimeTickFlag=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -