Пример #1
0
/** EEPROM データ読み出し
 *	@param		adr		EEPROMアドレス
 *	@param[out]	dt		データ
 *	@param		type	データタイプ
 *	@return				dt
 **************************************************************************** */
void*	PARA_ReadEepromData( uint16_t adr, void *dt, DATA_TYPE type )
{
    uint8_t	*dtp;

    switch( type )
    {
    case DATA_TYPE_INT8:
        EEPROM_ReadData( adr, (uint8_t*)dt, sizeof( int8_t ) );
        break;
    case DATA_TYPE_INT16:
        EEPROM_ReadData( adr, (uint8_t*)dt, sizeof( int16_t ) );
        break;
    case DATA_TYPE_INT32:
        EEPROM_ReadData( adr, (uint8_t*)dt, sizeof( int32_t ) );
        break;
    case DATA_TYPE_FLOAT:
        EEPROM_ReadData( adr, (uint8_t*)dt, sizeof( float ) );
        break;
    case DATA_TYPE_STRING:
        for( dtp = (uint8_t*)dt; ; dtp++, adr++ )
        {
            *dtp = EEPROM_ReadByte( adr );
            if( *dtp == 0 )
                break;
        }
        break;
    default:
        break;
    }
    return dt;
}
Пример #2
0
/** 拡張パラメータのEEPROMからの読み出し
 *	@para	check	TRUE:チェックサムをチェックする、FALSE:しない。
 *	@return		TRUE:正常、FALSE:バックアップも含めて読み出しエラー
 **************************************************************************** */
BOOL	para_LoadParameterEx( BOOL check )
{
    BOOL	stat = TRUE;

    EEPROM_ReadData( EEPROM_PAGE_0 + PARAMETER_EX_OFFSET, (uint8_t*)&ParameterEx, sizeof( ParameterEx ) );	// 拡張パラメータ読み出し
    if( check &&
            ( para_GetSum( (void*)&ParameterEx, sizeof( ParameterEx ) ) != 0 ) )
    {   // エラーであればバックアップを読み出す。
        EEPROM_ReadData( EEPROM_PAGE_1 + PARAMETER_EX_OFFSET, (uint8_t*)&ParameterEx, sizeof( ParameterEx ) );
        if( para_GetSum( (void*)&ParameterEx, sizeof( ParameterEx ) ) != 0 )
            stat = FALSE;	// エラー
    }
    return stat;
}
Пример #3
0
/*********************************************************************************************
* name			:		EEPROM_ReadRati
* func			:		EEPROM读参数配置结构体
* para			:		none
* ret				:		Correct_Input
* comment		:	
*********************************************************************************************/
Correct_Input EEPROM_ReadRati()
{
	Correct_Input savestruct;
	uint8_t ReadData[RATI_SIZE];
	uint8_t i;
	
	if(EEPROM_ReadData(ReadData,RATI_SIZE,RATI_ADRESS)==FALSE)
	{
	}
	UINT8TOINT32(ReadData,savestruct.intercept,savestruct.slope);
	return savestruct;
}
Пример #4
0
/*********************************************************************************************
* name			:		EEPROM_ReadStruct
* func			:		EEPROM读结构体
* para			:		none
* ret				:		EEPROMDataStruct savestruct
* comment		:	
*********************************************************************************************/
EEPROMDataStruct EEPROM_ReadStruct()
{
	EEPROMDataStruct savestruct;
	uint8_t ReadData[DATA_SIZE];
	uint8_t i;
	uint8_t num;
	
	num=0;
	
	
	if(EEPROM_ReadData(ReadData,DATA_SIZE,DATA_ADRESS)==FALSE)
	{
	}
	
	for(i=0;i<4;i++)
	{
		savestruct.ipConfig.ip[i]=ReadData[num];
		num+=1;
	}
	
	for(i=0;i<4;i++)
	{
		savestruct.ipConfig.gw[i]=ReadData[num];
		num+=1;
	}
	
	for(i=0;i<4;i++)
	{
		savestruct.ipConfig.sub[i]=ReadData[num];
		num+=1;
	}
	
	for(i=0;i<6;i++)
	{
		savestruct.ipConfig.mac[i]=ReadData[num];
		num+=1;
	}
	
	for(i=0;i<6;i++)
	{
		savestruct.uartConfig[i]=ReadData[num];
		num+=1;
	}
	
	for(i=0;i<6;i++)
	{
		savestruct.password[i]=ReadData[num];
		num+=1;
	}
	
	return savestruct;
}