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; } } }
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); } } } }
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; }