parameter.c

来自「PIC串口程序  可以帮助你编写串口程序  里面还有我自己做的协议 很方便」· C语言 代码 · 共 79 行

C
79
字号
#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 + =
减小字号Ctrl + -
显示快捷键?