📄 general.c
字号:
ucX_temp.x = ulRECFluxVMax_Today;
//ulong ulRECFluxVelocityMax_Today; 记录的当天最大流速(Flux_PCA.C)
fnWrite_DS1307RAM( DS1307RAMAddress0 + SystemTodayREC_V ,
4,
ucX_temp.c);
*/
}
/*******************************************************************
Beep函数
函数原型: void fnBeep(uchar ucBeepState)
功能: 设置蜂鸣器状态
0 关
1 开
******************************************************************/
void fnBeep(uchar ucBeepState)
{
if(ucBeepState)
//其它控制输出 蜂鸣器位输出
ucCON03_Buf = fnBitSet( ucCON03_Buf , 4 );
else
//其它控制输出 蜂鸣器位关闭
ucCON03_Buf = fnBitClr( ucCON03_Buf , 4 );
CON03 = ucCON03_Buf;
}
/*******************************************************************
Alarm函数
函数原型: void fnAlarm(uchar ucAlarmState)
功能: 设置报警器状态
0 关
1 开
******************************************************************/
void fnAlarm(uchar ucAlarmState)
{
if(ucAlarmState)
//其它控制输出 报警位输出
ucCON03_Buf = fnBitSet( ucCON03_Buf , 0 );
else
//其它控制输出 报警位关闭
ucCON03_Buf = fnBitClr( ucCON03_Buf , 0 );
CON03 = ucCON03_Buf;
}
/*******************************************************************
初始化L2记录函数
函数原型: void fnInit_SystemRecord2();
功能:初始化L2记录函数
注意:
本函数由菜单PP6 6 系统记录数据清零 调用!
本函数由L2读写函数调用(当发现记录内容有错误时!)
******************************************************************/
void fnInit_SystemRecord2()
{
uchar ucTemp1;
ucTemp1 = 0;
//索引=0
//写相应地址的数据--单字节
//写指定地址,单字节大小的数据:
//CAT24WC64P (N<=8192)(地址:0-8191)
//CAT24WC16P (N<=2048)(地址:0-2047)
fnWrite_Eeprom(LAD_L2_0,1,&ucTemp1);
//所有记录标志清零
fnWrite_Eeprom(LAD_L2_1,1,&ucTemp1);
fnWrite_Eeprom(LAD_L2_2,1,&ucTemp1);
fnWrite_Eeprom(LAD_L2_3,1,&ucTemp1);
fnWrite_Eeprom(LAD_L2_4,1,&ucTemp1);
fnWrite_Eeprom(LAD_L2_5,1,&ucTemp1);
fnWrite_Eeprom(LAD_L2_6,1,&ucTemp1);
fnWrite_Eeprom(LAD_L2_7,1,&ucTemp1);
fnWrite_Eeprom(LAD_L2_8,1,&ucTemp1);
}
/*******************************************************************
写L2记录函数
函数原型: void fnWrite_SystemRecord2();
功能:写L2记录函数
注意:
当记录索引>8时,发现错误!报警!初始化L2记录。重新写入!
写入uc8_SystemDateTime中的时间日期,以及系统触发变量 - ucSystemCouse。
置有效标志 = 1。
******************************************************************/
void fnWrite_SystemRecord2()
{
uchar ucTemp1,ucTemp2;
//读索引
//读相应地址的数据--单字节
//读指定地址,单字节大小的数据:
//CAT24WC64P (N<=8192)(地址:0-8191)
//CAT24WC16P (N<=2048)(地址:0-2047)
fnRead_Eeprom(LAD_L2_0,1,&ucTemp1);
if(ucTemp1 == 0)
{
ucTemp1 = 1;
}
else
if(ucTemp1 < 8)
{
ucTemp1++;
}
else
if(ucTemp1 == 8)
{
ucTemp1 = 1;
}
else
{
//发现错误!
//报警!
//初始化L2记录。
fnInit_SystemRecord2();
ucTemp1 = 1;
}
ucTemp2 = 1;
//写入索引
//1字节 索引
fnWrite_Eeprom(LAD_L2_0,1,&ucTemp1);
//写入数据
//6字节 时间日期
fnWrite_Eeprom( (LAD_L2_0 + 8*ucTemp1) + 1,6,uc8_SystemDateTime+1);
//1字节 系统触发变量 - ucSystemCouse
fnWrite_Eeprom( (LAD_L2_0 + 8*ucTemp1) + 7,1,&ucSystemCouse);
//1字节 记录标志置1
fnWrite_Eeprom( (LAD_L2_0 + 8*ucTemp1) ,1,&ucTemp2);
}
/*******************************************************************
读L2记录函数
函数原型: uchar fnRead_SystemRecord2(uchar ucRecordN, uchar *uc_Data);
功能:读L2记录函数
注意: 当记录索引>8时,发现错误!报警!初始化L2记录,返回0
当读过程正常,返回1。
ucRecordN的范围1-8,超过返回0
******************************************************************/
uchar fnRead_SystemRecord2(uchar ucRecordN, uchar *uc_Data)
{
uchar ucTemp1;
char cTemp2;
//读索引
//读相应地址的数据--单字节
//读指定地址,单字节大小的数据:
//CAT24WC64P (N<=8192)(地址:0-8191)
//CAT24WC16P (N<=2048)(地址:0-2047)
fnRead_Eeprom(LAD_L2_0,1,&ucTemp1);
if(ucTemp1 == 0)
{
return(0);
}
if(ucTemp1 > 8)
{
//发现错误!
//报警!
//初始化L2记录。
fnInit_SystemRecord2();
return(0);
}
if((ucRecordN>8)|(ucRecordN == 0))
{
return(0);
}
cTemp2 = ucTemp1 - ucRecordN + 1;
if(cTemp2<=0)
cTemp2 += 8;
//读数据 8字节
//读相应地址的数据--8字节
//读指定地址,8字节大小的数据:
//CAT24WC64P (N<=8192)(地址:0-8191)
//CAT24WC16P (N<=2048)(地址:0-2047)
fnRead_Eeprom((LAD_L2_0 + 8 * cTemp2) ,8 ,uc_Data);
if(uc_Data[0]==0)
return(0);
else
return(1);
}
/*******************************************************************
初始化L3记录函数
函数原型: void fnInit_SystemRecord3(uchar i);
功能:初始化L3记录函数
注意:
本函数由菜单PP6 6 系统记录数据清零 调用!
******************************************************************/
void fnInit_SystemRecord3(uchar i)
{
uchar ucTemp1;
ucTemp1 = 0;
////记录标志清零
//写相应地址的数据--单字节
//写指定地址,单字节大小的数据:
//CAT24WC64P (N<=8192)(地址:0-8191)
//CAT24WC16P (N<=2048)(地址:0-2047)
fnWrite_Eeprom(LAD_L3_1 + (i - 1)*12,1,&ucTemp1);
}
/*******************************************************************
写L3记录函数
函数原型: void fnWrite_SystemRecord3(uchar i, ulong ultemp);
功能: 把当前时间和日期和流量,写入L3 – i记录,记录的有效标志=1。
注意:
******************************************************************/
void fnWrite_SystemRecord3(uchar i, ulong ultemp)
{
union{
uchar c[4];
ulong x;
}ucX_temp;
uchar ucTemp1;
ucTemp1 = 1;
ucX_temp.x = ultemp;
//写入数据
//6字节 当前时间日期
fnWrite_Eeprom( LAD_L3_1 + (i - 1)*12 ,7,uc8_SystemDateTime);
//1字节 记录标志置1
fnWrite_Eeprom( LAD_L3_1 + (i - 1)*12 ,1,&ucTemp1);
//4字节 流速
fnWrite_Eeprom( LAD_L3_1 + (i - 1)*12 + 8,4,ucX_temp.c);
}
/*******************************************************************
读L3记录函数
函数原型: ulong fnRead_SystemRecord3(uchar i, uchar *uc_Data);
功能: 读距今第L3 – i记录。返回流量。
注意: 如果有效标志为0,流量=0,时间日期=0
******************************************************************/
ulong fnRead_SystemRecord3(uchar i, uchar *uc_Data)
{
union{
uchar c[4];
ulong x;
}ucX_temp;
uchar ucTemp1;
//读记录标志置
//读相应地址的数据--单字节
//读指定地址,单字节大小的数据:
//CAT24WC64P (N<=8192)(地址:0-8191)
//CAT24WC16P (N<=2048)(地址:0-2047)
fnRead_Eeprom(LAD_L3_1 + (i - 1)*12 ,1,&ucTemp1);
//如果有效标志为0,流量=0,时间日期=0
if(ucTemp1 == 0)
{
uc_Data[0] = 0;
return(0);
}
//6字节 时间日期
fnRead_Eeprom( LAD_L3_1 + (i - 1)*12 ,8,uc_Data);
//4字节 流速
fnRead_Eeprom( LAD_L3_1 + (i - 1)*12 + 8,4,ucX_temp.c);
return(ucX_temp.x);
}
/*******************************************************************
初始化L4记录函数
函数原型: void fnInit_SystemRecord4();
功能:初始化L4记录函数
注意:
本函数由菜单PP6系统记录数据清零 调用!
本函数由L4读写函数调用(当发现记录内容有错误时!)
******************************************************************/
/*void fnInit_SystemRecord4()
{
uchar ucTemp1;
ucTemp1 = 0;
//索引=0
//写相应地址的数据--单字节
//写指定地址,单字节大小的数据:
//CAT24WC64P (N<=8192)(地址:0-8191)
//CAT24WC16P (N<=2048)(地址:0-2047)
fnWrite_Eeprom(LAD_L4_0,1,&ucTemp1);
//所有记录标志清零
fnWrite_Eeprom(LAD_L4_1,1,&ucTemp1);
fnWrite_Eeprom(LAD_L4_2,1,&ucTemp1);
fnWrite_Eeprom(LAD_L4_3,1,&ucTemp1);
fnWrite_Eeprom(LAD_L4_4,1,&ucTemp1);
fnWrite_Eeprom(LAD_L4_5,1,&ucTemp1);
fnWrite_Eeprom(LAD_L4_6,1,&ucTemp1);
fnWrite_Eeprom(LAD_L4_7,1,&ucTemp1);
}
*/
/*******************************************************************
写L4记录函数
函数原型: void fnWrite_SystemRecord4(ulong ulFlux0,uchar *uc_Data);
功能:写L4记录函数
注意:
当记录索引>8时,发现错误!报警!初始化L2记录。重新写入!
写入uc8_SystemDateTime中的时间日期,以及流量ulFlux0。
置有效标志 = 1。
******************************************************************/
/*void fnWrite_SystemRecord4(ulong ulFlux0,uchar *uc_Data)
{
uchar ucTemp1,ucTemp2;
union{
uchar c[4];
ulong x;
}ucX_temp;
//读索引
//读相应地址的数据--单字节
//读指定地址,单字节大小的数据:
//CAT24WC64P (N<=8192)(地址:0-8191)
//CAT24WC16P (N<=2048)(地址:0-2047)
fnRead_Eeprom(LAD_L4_0,1,&ucTemp1);
if(ucTemp1 == 0)
{
ucTemp1 = 1;
}
else
if(ucTemp1 < 7)
{
ucTemp1++;
}
else
if(ucTemp1 == 7)
{
ucTemp1 = 1;
}
else
{
//发现错误!
//报警!
//初始化L2记录。
fnInit_SystemRecord4();
ucTemp1 = 1;
}
ucTemp2 = 1;
ucX_temp.x = ulFlux0;
//写入索引
//1字节 索引
fnWrite_Eeprom(LAD_L4_0,1,&ucTemp1);
//写入数据
//6字节 时间日期
fnWrite_Eeprom( (LAD_L4_0 + 12*ucTemp1) + 1,6,uc_Data+1);
//1字节 记录标志置1
fnWrite_Eeprom( (LAD_L4_0 + 12*ucTemp1) ,1,&ucTemp2);
//4字节 流速
fnWrite_Eeprom( (LAD_L4_0 + 12*ucTemp1) + 8,4,ucX_temp.c);
}
*/
/*******************************************************************
读L4记录函数
函数原型: ulong fnRead_SystemRecord4(uchar ucRecordN, uchar *uc_Data);
功能:读L4记录函数
注意: 当记录索引>7时,发现错误!报警!初始化L4记录,返回0
当读过程正常,返回1。
ucRecordN的范围1-7,超过返回0
******************************************************************/
/*ulong fnRead_SystemRecord4(uchar ucRecordN, uchar *uc_Data)
{
uchar ucTemp1;
char cTemp2;
union{
uchar c[4];
ulong x;
}ucX_temp;
//读索引
//读相应地址的数据--单字节
//读指定地址,单字节大小的数据:
//CAT24WC64P (N<=8192)(地址:0-8191)
//CAT24WC16P (N<=2048)(地址:0-2047)
fnRead_Eeprom(LAD_L4_0,1,&ucTemp1);
if(ucTemp1 == 0)
{
uc_Data[0] = 0;
return(0);
}
if(ucTemp1 > 7)
{
//发现错误!
//报警!
//初始化L4记录。
fnInit_SystemRecord4();
uc_Data[0] = 0;
return(0);
}
if((ucRecordN>7)|(ucRecordN == 0))
{
uc_Data[0] = 0;
return(0);
}
cTemp2 = ucTemp1 - ucRecordN + 1;
if(cTemp2<=0)
cTemp2 += 7;
//读数据 8字节
//读相应地址的数据--8字节
//读指定地址,8字节大小的数据:
//CAT24WC64P (N<=8192)(地址:0-8191)
//CAT24WC16P (N<=2048)(地址:0-2047)
fnRead_Eeprom((LAD_L4_0 + 12 * cTemp2) ,8 ,uc_Data);
if(uc_Data[0]==0)
return(0);
else
{
//4字节 流速
fnRead_Eeprom( (LAD_L4_0 + 12 * cTemp2) + 8,4,ucX_temp.c);
return(ucX_temp.x);
}
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -