📄 parameter.c
字号:
#include "..\includes\includes.h"
INT8U readOledParam(void)
{ INT8U crc;
INT8U n;
for (n=0;n<2;n++)
{ oledGain=EEPROM_READ(VGA_GAIN_ADDR+(n*16));
oledOffset=EEPROM_READ(VGA_OFFSET_ADDR+(n*16));
crc=oledGain+oledOffset;
if (crc==EEPROM_READ(PARAM_CRC_ADDR+(n*16)))
return (TRUE);
}
return (FALSE);
}
void saveOledParam(void)
{
INT8U n;
INT8U crc;
if (memBlockType==0)
{ memBlockType=1;
n=1;
}
else
{ memBlockType=0;
n=0;
}
crc=oledOffset+oledGain;
while (WR) ;
EEPROM_WRITE(VGA_GAIN_ADDR+(n*16),oledGain);
while (WR) ;
EEPROM_WRITE(VGA_OFFSET_ADDR+(n*16),oledOffset);
while (WR) ;
EEPROM_WRITE(PARAM_CRC_ADDR+(n*16),crc);
}
void saveOledDefaultParam(void)
{
oledGain =_OLED_GAIN;
oledOffset =_OLED_OFFSET;
memBlockType=0;
saveOledParam();
saveOledParam();
}
INT8U checkOledParamAvailable(void)
{ INT8U flag;
flag =TRUE;
if (!((oledGain>=MIN_GAIN)&&(oledGain<=MAX_GAIN)))
{ flag =FALSE; }
if (!((oledOffset>=MIN_OFFSET)&&(oledOffset<=MAX_OFFSET)))
{ flag =FALSE; }
return flag;
}
void loadDefaultParam(void)
{
oledGray =_OLED_GRAY;
oledGain =_OLED_GAIN;
memBlockType=0;
if (EEPROM_READ(INIT_FLAG_ADDR)!=_EEPROM_INIT_OK)
{ saveOledDefaultParam();
while (WR);
EEPROM_WRITE(INIT_FLAG_ADDR,_EEPROM_INIT_OK);
}
else
{ if (readOledParam()==FALSE)
saveOledDefaultParam();
else if (checkOledParamAvailable()==FALSE)
saveOledDefaultParam();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -