コード例 #1
0
ファイル: sp5K_tkCmd.c プロジェクト: spymovil/sp5K
static void loadSystemParams(void)
{

u08 EEaddr;
s08 eeStatus = FALSE;
u08 i;
systemVarsType sVars;

	// Leo la configuracion:  Intento leer hasta 3 veces.
	EEaddr = EEADDR_START_PARAMS;
	for (i=0; i<3; i++) {
		eeStatus = paramLoad(&sVars, EEaddr, sizeof(systemVarsType));
		if (eeStatus == TRUE) break;
	}

	vTaskDelay( 100 / portTICK_RATE_MS );

	// Confirmo que pude leer bien.
	if ( (eeStatus == FALSE) || (sVars.initByte != 0x49) ) {
		// No pude leer la EE correctamente o es la primera vez que arranco.
		// Inicializo a default.
		snprintf_P( &cmd_printfBuff,CHAR128,PSTR("loadSystemParams::Load EE error: default !!\r\n\0") );
		logPrintStr(LOG_NONE, &cmd_printfBuff);

		loadDefaults(&sVars);
		// Almaceno en la EE para el proximo arranque.
		paramStore(&sVars, EEaddr, sizeof(systemVars));

	} else {
		// Pude leer la eeprom correctamente.
		snprintf_P( &cmd_printfBuff,CHAR128,PSTR("loadSystemParams::Load config ok !!\r\n\0") );
		logPrintStr(LOG_NONE, &cmd_printfBuff);
	}

	// Siempre debo arrancar con esto en FALSE para aguantar a las tareas.
	sVars.initStatus = FALSE;

	sVars.wrkMode = WK_NORMAL;
	strncpy_P(sVars.dlgIp, PSTR("000.000.000.000\0"),16);
	sVars.csq = 0;
	sVars.dbm = 0;
	sVars.dcd = 0;
	sVars.ri = 0;
	sVars.termsw = 0;

	// Actualizo el systemVars.
	if (xSemaphoreTake( sem_systemVars, MSTOTAKESYSTEMVARSSEMPH ) == pdTRUE ) {
		memcpy(&systemVars, &sVars, sizeof(systemVarsType));
		xSemaphoreGive( sem_systemVars );
	}

	snprintf_P( &cmd_printfBuff,CHAR128,PSTR("loadSystemParams::Config analogs=%d\r\n\0"), NRO_CHANNELS );
	logPrintStr(LOG_NONE, &cmd_printfBuff);

}
コード例 #2
0
ファイル: app.c プロジェクト: wrightgithub/stm32_Quadrotor-
void IAC_Init(void)
{
	 delay_init(72);  //延时函数初始化
	 Nvic_Init();     //中断初始化 
	 LED_Init();      //led初始化
	 KEY_Init();    //按键初始化
	 OLED_Init();     //oled初始化
	 //Draw_LibLogo();  //logo	
    paramLoad();    //pid参数初始化
	 State_Display();//OLED数据显示
   Moto_Init();		  //电机初始化//200hz
	
	 usart1_init(72,115200); //串口1初始化  摄像头
	 usart2_Init(36,9600);    //ks103数据 9600 
	 usart3_config(460800); //串口3初始化   上位机
	 TIM3_Init(2500); //定时器初始化 2.5MS
}
コード例 #3
0
ファイル: sp5KV3_tkControl.c プロジェクト: ppeluffo/sp5KV3
//------------------------------------------------------------------------------------
// GENERAL
static void loadSystemParams(void)
{
s08 eeStatus = FALSE;
u08 i;

	// Leo la configuracion:  Intento leer hasta 3 veces.
	for (i=0; i<3; i++) {
		eeStatus = paramLoad( &systemVars, EEADDR_START_PARAMS, sizeof(systemVarsType));
		if (eeStatus == TRUE) break;
		vTaskDelay( 200 / portTICK_RATE_MS );
	}

	// Confirmo que pude leer bien.
	if ( (eeStatus == FALSE) || (systemVars.initByte != 0x49) ) {
		// No pude leer la EE correctamente o es la primera vez que arranco.
		// Inicializo a default.
		loadDefaults();
		snprintf_P( ctl_printfBuff,CHAR64,PSTR("loadSystemParams::Load EE error: default !!\r\n") );
		TERMrprintfStr( ctl_printfBuff );

	} else {
		// Pude leer la eeprom correctamente.
		snprintf_P( ctl_printfBuff,CHAR64,PSTR("loadSystemParams::Load config ok !!\r\n") );
		TERMrprintfStr( ctl_printfBuff );
	}

	// Ajustes de inicio:
	strncpy_P(systemVars.dlgIp, PSTR("000.000.000.000\0"),16);
	systemVars.csq = 0;
	systemVars.dbm = 0;
	systemVars.dcd = 0;
	systemVars.ri = 0;
	systemVars.termsw = 0;
	systemVars.wrkMode = WK_NORMAL;

	snprintf_P( ctl_printfBuff,CHAR64,PSTR("loadSystemParams::FW %d analogs\r\n"), NRO_CHANNELS );
	TERMrprintfStr( ctl_printfBuff );
}