Пример #1
0
void main(void) {
	SystemInit();
	TEMP_init();
	AIRSENS_init();
	MEM_init();
	SysTick_Config(84000); // config systick to interrupt w/ 1 interrupt/ms
	sta.FAST_MODE = 1;
	sta.state = 0;
	sta.n_avg = 3;
	sta.temp_sum_f = 0;
	sta.fast_count = 0;
	sta.status.MEAS = 0;
	sta.status.TEMP_REQ = 0;
	
	
	
	RTC_Init(50, 00, 14, 20, 15, 01, 18, 7);
	while(1){
		tempSens();
		if(sta.status.MEAS == 1){
			sta.status.MEAS = 0;
			if(mem.temp->count>0){
				MEM_save((sta.temp_sum_f/mem.temp->count), AIRSENS_getPres() );
				sta.temp_sum_f = 0;
				mem.temp->count = 0;
			}
		}
		if(sta.status.NEW_DAY){
			sta.status.NEW_DAY = 0;
			MEM_newDay();
			//meas_count = 0;
		}
	}
}
Пример #2
0
void tkControl(void * pvParameters)
{

( void ) pvParameters;
BaseType_t xResult;
uint32_t ulNotifiedValue;

	MCP_init();

	// TERMINAL: Debe ser lo primero que incia para poder mandar mensajes de log.
	ac_terminal(INIT_TERM, NULL);

	loadSystemParams();

	// WATCHDOG
	ac_wdg( INIT_WDG );

	// LEDS
	ac_systemLeds( INIT_LED );

	// EXITWRKMODE2NORMAL
	ac_exitWrkMode2Normal(INIT_EWM2N);

	// MEMORIA
	MEM_init();
	snprintf_P( ctl_printfBuff,CHAR256,PSTR("Init memory: pWr=%d,pRd=%d,pDel=%d,free=%d,4rd=%d,4del=%d  \r\n"), MEM_getWrPtr(), MEM_getRdPtr(), MEM_getDELptr(), MEM_getRcdsFree(),MEM_getRcds4rd(),MEM_getRcds4del() );
	TERMrprintfStr( ctl_printfBuff );

	// Habilito arrancar otras tareas
	startToken = STOK_TIMERS;

	// Espero la notificacion para arrancar
	while ( startToken != STOK_CTL ) {
		vTaskDelay( ( TickType_t)( 100 / portTICK_RATE_MS ) );
	}
	TERMrprintfProgStrM("starting tkControl..\r\n");
	startToken++;

	// Loop
	for( ;; )
	{
		clearWdg(WDG_CTL);

		// LED
		ac_systemLeds(TOGGLE_LED);

		// WATCHDOG
		ac_wdg(CHECK_WDG);

		// TERMINAL
		ac_terminal(CHECK_TERM, NULL);

		// EXITWRKMODE2NORMAL
		ac_exitWrkMode2Normal(CHECK_EWM2N);

		// Genero una espera de 100ms por algun mensaje para hacer algo.
		xResult = xTaskNotifyWait( 0x00,          	 				/* Don't clear bits on entry. */
		                           ULONG_MAX,        				/* Clear all bits on exit. */
		                           &ulNotifiedValue, 				/* Stores the notified value. */
								   (100 / portTICK_RATE_MS ) );

		if( xResult == pdTRUE ) {
			// Arrancar el timer y control de modo service/monitor
			if ( ( ulNotifiedValue & CTLMSG_STARTEWM2N ) != 0 ) {
				ac_exitWrkMode2Normal(START_EWM2N);
		    }

		 }
	}
}
Пример #3
0
int main(int argc, char **argv)
{
	MEM_init(); //Inits both mem1lo and mem2
	mainIOS = DOL_MAIN_IOS;
	__exception_setreload(10);
	Gecko_Init(); //USB Gecko and SD/WiFi buffer
	gprintf(" \nWelcome to %s!\nThis is the debug output.\n", VERSION_STRING.c_str());

	m_vid.init(); // Init video
	DeviceHandle.Init();
	NandHandle.Init();

	char *gameid = NULL;
	bool Emulator_boot = false;
	bool iosOK = true;

	for(u8 i = 0; i < argc; i++)
	{
		if(argv[i] != NULL && strcasestr(argv[i], "ios=") != NULL && strlen(argv[i]) > 4)
		{
			while(argv[i][0] && !isdigit(argv[i][0]))
				argv[i]++;
			if (atoi(argv[i]) < 254 && atoi(argv[i]) > 0)
				mainIOS = atoi(argv[i]);
		}
		else if(strlen(argv[i]) == 6)
		{
			gameid = argv[i];
			for(u8 i = 0; i < 5; i++)
			{
				if(!isalnum(gameid[i]))
					gameid = NULL;
			}
		}
		else if(argv[i] != NULL && strcasestr(argv[i], "EMULATOR_MAGIC") != NULL)
			Emulator_boot = true;
	}
	check_neek2o();
	/* Init ISFS */
	if(neek2o() || Sys_DolphinMode())
		NandHandle.Init_ISFS();
	else
		NandHandle.LoadDefaultIOS(); /* safe reload to preferred IOS */
	/* Maybe new IOS and Port settings */
	if(InternalSave.CheckSave())
		InternalSave.LoadSettings();
	/* Handle (c)IOS Loading */
	if(neek2o() || Sys_DolphinMode()) /* wont reload anythin */
		iosOK = loadIOS(IOS_GetVersion(), false);
	else if(useMainIOS && CustomIOS(IOS_GetType(mainIOS))) /* Requested */
		iosOK = loadIOS(mainIOS, false) && CustomIOS(CurrentIOS.Type);
	// Init
	Sys_Init();
	Sys_ExitTo(EXIT_TO_HBC);

	DeviceHandle.MountAll();
	m_vid.waitMessage(0.15f);

	Open_Inputs();
	mainMenu.init();
	if(CurrentIOS.Version != mainIOS && !neek2o() && !Sys_DolphinMode())
	{
		if(useMainIOS || !DeviceHandle.UsablePartitionMounted())
		{
			useMainIOS = false;
			mainMenu.TempLoadIOS();
			iosOK = CustomIOS(CurrentIOS.Type);
		}
	}
	if(CurrentIOS.Version == mainIOS)
		useMainIOS = true; //Needed for later checks
	if(!iosOK)
		mainMenu.terror("errboot1", L"No cIOS found!\ncIOS d2x 249 base 56 and 250 base 57 are enough for all your games.");
	else if(!DeviceHandle.UsablePartitionMounted())
		mainMenu.terror("errboot2", L"Could not find a device to save configuration files on!");
	else if(WDVD_Init() < 0)
		mainMenu.terror("errboot3", L"Could not initialize the DIP module!");
	else 
	{
		writeStub();
		if(Emulator_boot)
			mainMenu.m_Emulator_boot = true;
		if(gameid != NULL && strlen(gameid) == 6)
			mainMenu.directlaunch(gameid);
		else
			mainMenu.main();
	}
	//Exit WiiFlow, no game booted...
	mainMenu.cleanup();
	ShutdownBeforeExit();
	Sys_Exit();
	return 0;
}