📄 main.h
字号:
#include <avr/io.h>
#include <avr/wdt.h>
#include <avr/interrupt.h>
#include <avr/eeprom.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#define SetBit(port,bit) (port |= (1<<bit)) //set bit in port
#define ClrBit(port,bit) (port &= ~(1<<bit)) //clear bit in port
#define nop(); asm volatile("nop"::)
/**********端口A*********/
#define SoundSwitch_x0 0
#define SoundSwitch_x1 1
#define SoundSwitch_x2 2
#define SoundSwitch_x3 3
#define SoundSwitch_y0 4
#define SoundSwitch_y1 5
#define SoundSwitch_y2 6
#define SoundSwitchData 7
/**********端口B*********/
#define CheckCenterHold 0
#define CallCenter 1
#define CheckDoorRing 2
#define Test_Flag1 3
#define HoldDoor 4
/**********端口C*********/
#define Create10HZ 0x01
#define P17 1
#define EnDTMFCreate 2
#define DTMF1_DV 3
#define DTMF2_DV 4
#define Line_LedCtr 5
#define Line2_LedCtr 6
#define SelectDTMF 7
/**********端口D*********/
#define Recordvoice 0
#define Playvoice 1
#define OSCRingFK 2
#define CheckHold_Ring 3
#define Reset8816 4
#define CreateMusic 0x20
#define Storbe8816 6
#define Osc450HZ 7
/*********8816********************/
#define cY_Outside1 0 //Y0
#define cY_Outside2 1 //Y1
#define Chip_Record 2 //Y2
#define SigCallID 3 //Y3
#define Connect_Ext1 4 //Y4
#define Connect_Ext2 5 //Y5
#define Connect_Busy 6 //Y6
#define Connect_Flash 7 //Y7
#define cX_Ext1 0 //X0
#define cX_Ext2 1 //X1
#define cX_Ext3 2 //X2
#define cX_Ext4 3 //X3
#define cX_Ext5 4 //X4
#define cX_Ext6 5 //X5
#define cX_Ex1 cX_Ext1 //X0
#define cX_Ex2 cX_Ext2 //X1
#define cX_Ex3 cX_Ext3 //X2
#define cX_Ex4 cX_Ext4 //X3
#define cX_Ex5 cX_Ext5 //X4
#define cX_Ex6 cX_Ext6 //X5
#define cX_Music 6 //X12
#define Chip_Voice 7 //X13
#define cX_DTMF1 8 //X6
#define cX_DTMF2 9 //X7
#define Doorphone 10 //X8
#define Center 11 //X9
#define Busy_Voicd 12 //X10
#define WaitRing 13 //X11
#define Sig450Hz_1 14 //X14
#define Sig450Hz_2 15 //X15
//应用系统配置*****************************
#define ON 0xff
#define OFF 0
#define OutsideTelNum 2 //外线数目 可扩展到四路
#define cExtTelNum 6 //定义分机数目
unsigned char timeover_10ms;
unsigned char timeover_200ms;
unsigned char Test_Flag2;
unsigned char OutsideRingCheck;
unsigned char OutsideBusy_Free;
unsigned char DTMFBusy_Free;
unsigned char ExtTelStateCheck;
unsigned char ExtTelFlashState;
unsigned char ExtTelRingState;
unsigned char FlashtimeState;
unsigned char CallCenterState;
unsigned char Flash_For_Out_Ext; //0 For Out 1 For Ext
/**************SoundInTel.c函数列表*****************/
unsigned int timeover_RingFK;
unsigned int Musictime_1ms;
unsigned char mExtTelRSTSav;
unsigned char mExtTelSCheckSav;
unsigned char tFSKPhoneNumber[11];
void fnMusic(void);
void fnOSCRingFK(void);
void test(void);
/**************Communication.c函数列表*****************/
void Writesoundway(unsigned char y,unsigned char x,unsigned char num);
void TelOperateLoop(void);
void ExtTelCheck(void); //分机摘机检测
void OutsideTelRingCheck(void); //外线振铃检测
/*************DTMFDecord.c函数列表**************************/
unsigned char mDTMF1_Pre;
unsigned char mDTMF2_Pre;
unsigned char mDTMF_In;
unsigned char DTMF_Decode(unsigned char DTMF_NUM);
/************fnTelGen.c函数列表**************************/
#define cExt1Bit 0x01
#define cExt2Bit 0x02
#define cExt3Bit 0x04
#define cExt4Bit 0x08
#define cExt5Bit 0x10
#define cExt6Bit 0x20
#define cOut1Bit 0x01
#define cOut2Bit 0x02
#define cExt1Num 0x0
#define cExt2Num 0x1
#define cExt3Num 0x2
#define cExt4Num 0x3
#define cExt5Num 0x4
#define cExt6Num 0x5
#define cOut1Num 0x0
#define cOut2Num 0x1
#define cXin 0x0b
#define cJing 0x0c
void fnStopOutRing(unsigned char mOutNum);
unsigned char fnFindFreeExt(unsigned char mOutNum);
void fnStopExtRing(unsigned char mExtNum);
void fnStopExtWaitRing(unsigned char mExt_FPt,unsigned char mExtNum);
void fnExtLinkMusic(unsigned char mExtNum);
void fnExtCutOffMusic(unsigned char mExt_FPt,unsigned char mExtNum);
void fnFlashWaitRing(unsigned char mExtNum);
void fnCutOffExtLineAndLinkToBusy(unsigned char mY4Y5Nm);
void fnConnectionOutLine(unsigned char cNumIn ,unsigned char mExtNum);
void fnCutOffLineIn(unsigned char mLineNm); // 1= Line 1 , 2=Line 2
void fnCutOffY4Y5(unsigned char mY4Y5Nm); // 4= Y4 , 5= Y5
void fnCutOffDTMF(unsigned char mDTMFNm); // 1= DTMF 1 , 2=DTMF 2
unsigned char fnLinkLineIn_Ext(unsigned char mExtenNm); //mExtenNm 0-5 return: 0:Unsuccess 1= Line 1 2= Line 2
unsigned char fnLinkExtLineY4Y5(unsigned char mExtenNm); //mExtenNm 0-5 return: 0:Unsuccess 4= Y4 5= Y5
unsigned char fnLinkDTMF_Ext(unsigned char mY); //mExtenNm 0-5 return: return: 0:Unsuccess 1= DTMF 1 2= DTMF 2
unsigned char fnFindRingOutLine(void); // Return 0: No Find 1=OutLine 1 2=OutLine2
unsigned char fnFindRingExtLine(unsigned char mExtNum); // Return 0: No Find 1=OutLine 1 2=OutLine2
unsigned char fnFindRingExtY4Y5(void);
unsigned char fnExt_DTMFIN1(unsigned char mDTMF_Num, unsigned char mY4Y5Num,unsigned char mExtNum ,unsigned char mExtdialOutNum );
unsigned char fnExt_DTMFIN2(unsigned char mDTMF_Num, unsigned char mExtNum ,unsigned char mY4Y5Num);
void fnCutOffFlash(void); // 1= Line 1 , 2=Line 2
unsigned char fnFindExtStillSong(void);
void fnConnectMtoExt( unsigned char mExtMusic, unsigned char mExtNm); // fnExt1_FlashLinkExtPhone
void fnConnectMtoRExt(unsigned char mExtMusic,unsigned char mExtRing); //for fnExt1_FlashWaitRing
void fnConnectMtoOut( unsigned char mExtMusic, unsigned char mExtNm); // fnExt1_FlashLinkExtPhone
void fnConnectMtoROut(unsigned char mExtMusic,unsigned char mExtRing); //for fnExt1_FlashWaitRing
void fnStopAllExtRingFor_OutLine(void); // 停止 内机响铃
unsigned char fnFind_4FreeExt(unsigned char mOutNum);
unsigned char fnFindWhichLineInRingFirst(void);
/****************Ext1.c函数列表*************************/
unsigned char Ext_FunPt[6];
unsigned char Ext_LineY4Y5Num[6];
unsigned char MulTalkState;
#define Ext1_FunPt Ext_FunPt[0]
#define Ext1_LineY4Y5Num Ext_LineY4Y5Num[0]
unsigned int Ext1_dialtime;
unsigned char Ext1_NumdialOut,Ext1_FlashNumdialOut;
unsigned char Ext1_NumdialIn;
//unsigned char Ext1_LineY4Y5Num;
unsigned char mExt1_Link[2];
unsigned char Ext1_MusicNumdialIn;
void fnTelRountineExt1(void);
/****************Ext2.c函数列表*************************/
#define Ext2_FunPt Ext_FunPt[1]
#define Ext2_LineY4Y5Num Ext_LineY4Y5Num[1]
unsigned int Ext2_dialtime;
unsigned char Ext2_NumdialOut,Ext2_FlashNumdialOut;
unsigned char Ext2_NumdialIn;
//unsigned char Ext2_LineY4Y5Num;
unsigned char mExt2_Link[2];
unsigned char Ext2_MusicNumdialIn;
void fnTelRountineExt2(void);
/****************Ext3.c函数列表*************************/
#define Ext3_FunPt Ext_FunPt[2]
#define Ext3_LineY4Y5Num Ext_LineY4Y5Num[2]
unsigned int Ext3_dialtime;
unsigned char Ext3_NumdialOut,Ext3_FlashNumdialOut;
unsigned char Ext3_NumdialIn;
//unsigned char Ext3_LineY4Y5Num;
unsigned char mExt3_Link[2];
unsigned char Ext3_MusicNumdialIn;
void fnTelRountineExt3(void);
/****************Ext4.c函数列表*************************/
#define Ext4_FunPt Ext_FunPt[3]
#define Ext4_LineY4Y5Num Ext_LineY4Y5Num[3]
unsigned int Ext4_dialtime;
unsigned char Ext4_NumdialOut,Ext4_FlashNumdialOut;
unsigned char Ext4_NumdialIn;
//unsigned char Ext4_LineY4Y5Num;
unsigned char mExt4_Link[2];
unsigned char Ext4_MusicNumdialIn;
void fnTelRountineExt4(void);
/****************Ext5.c函数列表*************************/
#define Ext5_FunPt Ext_FunPt[4]
#define Ext5_LineY4Y5Num Ext_LineY4Y5Num[4]
unsigned int Ext5_dialtime;
unsigned char Ext5_NumdialOut,Ext5_FlashNumdialOut;
unsigned char Ext5_NumdialIn;
//unsigned char Ext5_LineY4Y5Num;
unsigned char mExt5_Link[2];
unsigned char Ext5_MusicNumdialIn;
void fnTelRountineExt5(void);
/****************Ext6.c函数列表*************************/
#define Ext6_FunPt Ext_FunPt[5]
#define Ext6_LineY4Y5Num Ext_LineY4Y5Num[5]
unsigned int Ext6_dialtime;
unsigned char Ext6_NumdialOut,Ext6_FlashNumdialOut;
unsigned char Ext6_NumdialIn;
//unsigned char Ext6_LineY4Y5Num;
unsigned char mExt6_Link[2];
unsigned char Ext6_MusicNumdialIn;
void fnTelRountineExt6(void);
#define cTelTm50ms 50
unsigned char mLineInFirstRing;
/****************Out1.c函数列表*************************/
unsigned char Out1_FunPt;
unsigned char Out1_NumdialOut;
void fnTelRountineOut1(void);
/****************Out2.c函数列表*************************/
unsigned char Out2_FunPt;
unsigned char Out2_NumdialOut;
void fnTelRountineOut2(void);
/****************Doorphone.c函数列表*************************/
unsigned char Doorphone_FunPt;
unsigned char DoorRingRd,DoorRingPre;
unsigned char Door_LineY4Y5Num;
unsigned int Doorphone_time;
void fnTelRountineDoorphone(void);
unsigned char NotHoldDoorphone(void);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -