示例#1
0
void eeprom_read(int16_t* ax,int16_t* ay,int16_t* gx,int16_t* gy,int16_t* gz,int16_t* hx,int16_t* hy,int16_t* hz,
float* rateRollkp,float* ratePitchkp, float* rateYawkp, float* rateRollki, float* ratePitchki,float* rateYawki,float* rateRollkd,float* ratePitchkd,float* rateYawkd,float* angleRollkp,float* anglePitchkp,float* angleYawkp)
{
	FAL_Open();             
	*gx=Data_FAL_Read(0x00);
	*gy=Data_FAL_Read(0x01);
	*gz=Data_FAL_Read(0x02);
	*hx=Data_FAL_Read(0x03);
	*hy=Data_FAL_Read(0x04);
	*hz=Data_FAL_Read(0x05);
	*ax=Data_FAL_Read(0x06);
	*ay=Data_FAL_Read(0x07);
	*rateRollkp=Data_FAL_Read(0x08);
	*ratePitchkp=Data_FAL_Read(0x09);
	*rateYawkp=Data_FAL_Read(0x10);
	*rateRollki=Data_FAL_Read(0x11);
	*ratePitchki=Data_FAL_Read(0x12);
	*rateYawki=Data_FAL_Read(0x13);
	*rateRollkd=Data_FAL_Read(0x14);
	*ratePitchkd=Data_FAL_Read(0x15);
	*rateYawkd=Data_FAL_Read(0x16);
	*angleRollkp=Data_FAL_Read(0x17);
	*anglePitchkp=Data_FAL_Read(0x18);
	*angleYawkp=Data_FAL_Read(0x19);
	FAL_Close();
}
示例#2
0
void eeprom_write(int16_t ax,int16_t ay,int16_t gx,int16_t gy,int16_t gz,int16_t hx,int16_t hy,int16_t hz,
int16_t rateRollkp,int16_t ratePitchkp, int16_t rateYawkp, int16_t rateRollki, int16_t ratePitchki,int16_t rateYawki,int16_t rateRollkd,int16_t ratePitchkd,int16_t rateYawkd,int16_t angleRollkp,int16_t anglePitchkp,int16_t angleYawkp)
{
	FAL_Open();             
	Data_FAL_Erase(0x0);               //erase block NO.
	Data_FAL_Write(0x00,gx);   //write data to flash.
	Data_FAL_Write(0x01,gy);   //write data to flash.
	Data_FAL_Write(0x02,gz);   //write data to flash.
	Data_FAL_Write(0x03,hx);   //write data to flash.
	Data_FAL_Write(0x04,hy);   //write data to flash.
	Data_FAL_Write(0x05,hz);   //write data to flash.
	Data_FAL_Write(0x06,ax);   //write data to flash.
	Data_FAL_Write(0x07,ay);   //write data to flash.
	Data_FAL_Write(0x08,rateRollkp);   //write data to flash.
	Data_FAL_Write(0x09,ratePitchkp);   //write data to flash.
	Data_FAL_Write(0x10,rateYawkp);   //write data to flash.
	Data_FAL_Write(0x11,rateRollki);   //write data to flash.
	Data_FAL_Write(0x12,ratePitchki);   //write data to flash.
	Data_FAL_Write(0x13,rateYawki);   //write data to flash.
	Data_FAL_Write(0x14,rateRollkd);   //write data to flash.
	Data_FAL_Write(0x15,ratePitchkd);   //write data to flash.
	Data_FAL_Write(0x16,rateYawkd);   //write data to flash.
	Data_FAL_Write(0x17,angleRollkp);   //write data to flash.
	Data_FAL_Write(0x18,anglePitchkp);   //write data to flash.
	Data_FAL_Write(0x19,angleYawkp);   //write data to flash.
	
	FAL_Close();
}
示例#3
0
/*==============================================================================*/
void samDataFlashReadFixAddr(unsigned char *RdDataBuff,unsigned int RdCnt)
{
	fal_request_t   dtyRequester;

	unsigned int i=0;
	unsigned int nRdCnt=0;
	unsigned long __far *DataPtr =(__far unsigned long*)RdDataBuff;

	if(RdCnt%4)
	{
//		return 0xee;	//Data Length Error
	}
	nRdCnt = RdCnt/4;

	dtyRequester.status_enu = FAL_Init( &FixArea_fal_descriptor_str );

	if( dtyRequester.status_enu == FAL_OK )
	{
		FAL_Open();

		for(i=0; i<nRdCnt; i++)
		{
			dtyRequester.data_u32 = 0;
			dtyRequester.index_u16   = i;
			dtyRequester.command_enu = FAL_CMD_READ_WORD;
			dtyRequester.status_enu  = 0;

			FAL_Execute( &dtyRequester );

			*(DataPtr+i) = dtyRequester.data_u32;
		}
		FAL_Close();
	}
//    return dtyRequester.status_enu;
}
示例#4
0
/*==============================================================================*/
void samDataFlashWriteFixAddr(unsigned char *WrDataBuff,unsigned int WrCnt)
{
	fal_request_t   dtyRequester;

	unsigned int i=0;
	unsigned int nWrCnt=0;
	unsigned long __far *DataPtr =(__far unsigned long*)WrDataBuff;

	if(WrCnt%4)
	{
//		return 0xee;	//Data Length Error 		
	}
	nWrCnt = WrCnt/4;

	dtyRequester.status_enu = FAL_Init( &FixArea_fal_descriptor_str );

	if( dtyRequester.status_enu == FAL_OK )
	{
		FAL_Open();

		for(i=0; i<nWrCnt; i++)
		{
			dtyRequester.data_u32    = *(DataPtr+i);
			dtyRequester.index_u16   = i;
			dtyRequester.command_enu = FAL_CMD_WRITE_WORD;
			dtyRequester.status_enu  = 0;

			FAL_Execute( &dtyRequester );

			do {
				FAL_Handler();
			} while( dtyRequester.status_enu == FAL_BUSY );
		}
		FAL_Close();
	}
//    return dtyRequester.status_enu;
}
示例#5
0
/*==============================================================================*/
void samDataFlashEraseFixAddr( void )
{
	fal_request_t   dtyRequester;

	dtyRequester.status_enu = FAL_Init( &FixArea_fal_descriptor_str );

	if( dtyRequester.status_enu == FAL_OK )
	{
		FAL_Open();

		dtyRequester.data_u32    = 0;
		dtyRequester.index_u16   = 0;
		dtyRequester.command_enu = FAL_CMD_ERASE_BLOCK;
		dtyRequester.status_enu  = 0;

		FAL_Execute( &dtyRequester );

		do {
			FAL_Handler();
		} while( dtyRequester.status_enu == FAL_BUSY );
		FAL_Close();
	}
//   return dtyRequester.status_enu;
}