/***************************************************************************** ** Main Function main() ******************************************************************************/ int main (void) { /* SystemClockUpdate() updates the SystemFrequency variable */ SystemClockUpdate(); /* Initialize RTC module */ RTCInit(); local_time.RTC_Sec = 0; local_time.RTC_Min = 0; local_time.RTC_Hour = 0; local_time.RTC_Mday = 8; local_time.RTC_Wday = 3; local_time.RTC_Yday = 12; /* current date 07/12/2006 */ local_time.RTC_Mon = 7; local_time.RTC_Year = 2006; RTCSetTime( local_time ); /* Set local time */ alarm_time.RTC_Sec = 0; alarm_time.RTC_Min = 0; alarm_time.RTC_Hour = 0; alarm_time.RTC_Mday = 1; alarm_time.RTC_Wday = 0; alarm_time.RTC_Yday = 1; /* alarm date 01/01/2007 */ alarm_time.RTC_Mon = 1; alarm_time.RTC_Year = 2007; RTCSetAlarm( alarm_time ); /* set alarm time */ NVIC_EnableIRQ(RTC_IRQn); /* mask off alarm mask, turn on IMYEAR in the counter increment interrupt register */ RTCSetAlarmMask(AMRSEC|AMRMIN|AMRHOUR|AMRDOM|AMRDOW|AMRDOY|AMRMON|AMRYEAR); LPC_RTC->CIIR = IMMIN | IMYEAR; /* 2007/01/01/00:00:00 is the alarm on */ RTCStart(); while (1) { /* Loop forever */ current_time = RTCGetTime(); if ( alarm_on != 0 ) { alarm_on = 0; /* Get current time when alarm is on */ current_time = RTCGetTime(); } } }
void printDebug1(void) { //return; RTCTime current_time; current_time = RTCGetTime(); print_uart0("FCd1;"); print_uart0("%d;%d;%d;", (int)current_time.RTC_Sec, (int)current_time.RTC_Min, (int)refreshCount / 10 ); print_uart0("%d;%d;%d;%d;%d;%d;%d;%d;%d;%d;", (int)PWMEngOut[0], (int)PWMEngOut[1], (int)PWMEngOut[2], (int)PWMEngOut[3], (int)(ADC_mit[ADC_NICK]-ADC_drift[ADC_NICK]), (int)(ADC_mit[ADC_ROLL]-ADC_drift[ADC_ROLL]), (int)(ADC_mit[ADC_PITCH]+ADC_drift[ADC_PITCH]), (int)ADC_mit[ADC_ACCX], (int)ADC_mit[ADC_ACCY], (int)ADC_mit[ADC_ACCZ]); print_uart0("%d;%d;%d;%d;%d;%d;%d;%d;%d;%d;", (int)ADC_mit[AIRPRESSURE], (int)MM3_runtime.X_axis, (int)MM3_runtime.Y_axis, (int)MM3_runtime.Z_axis, (signed int)PWM_channel[0], (signed int)PWM_channel[1], (signed int)PWM_channel[2], (signed int)PWM_channel[3], (signed int)PWM_channel[4], (signed int)PWM_channel[5]); print_uart0("%d;%d", (signed int)PWM_channel[6], (signed int)(ADC_raw[UBAT] / ubatDivider) ); print_uart0(";00#"); //print_uart0(" \r\n"); }
void printDebug(void) { //return; RTCTime current_time; current_time = RTCGetTime(); print_uart0("FCd0;"); print_uart0("%d;%d;%d;", current_time.RTC_Sec, current_time.RTC_Min, refreshCount ); print_uart0(";00#"); }
void printTelemetrie(void) { RTCTime current_time; current_time = RTCGetTime(); print_uart0("FCt0;"); print_uart0("%d;%d;%d;", (int)current_time.RTC_Min, (int)current_time.RTC_Sec, (int)lastCycleCount / 10); print_uart0("%d;%d;%d;%d;%d;%d;%d;%d;", //( AD0DR0 >> 6 ) & 0x3FF, (int)(ADC_mit[ADC_NICK]-ADC_drift[ADC_NICK]), (int)(ADC_mit[ADC_ROLL]-ADC_drift[ADC_ROLL]), (int)(ADC_mit[ADC_PITCH]+ADC_drift[ADC_PITCH]), //( AD0DR3 >> 6 ) & 0x3FF, (int)ADC_mit[ADC_ACCX], (int)ADC_mit[ADC_ACCY], (int)ADC_mit[ADC_ACCZ], (int)ADC_mit[AIRPRESSURE], (int)(float)(ADC_mit[UBAT]/ubatDivider)); print_uart0("%d;%d;%d;%d;", (int)PWMEngOut[0], (int)PWMEngOut[1], (int)PWMEngOut[2], (int)PWMEngOut[3]); print_uart0("%d;%d;%d;%d;%d;%d;%d;%d;%d;%d;%d", (int)heading, (int)HMC_runtime.X_axis, (int)HMC_runtime.Y_axis, (int)HMC_runtime.Z_axis, (int)PWM_channel[PWM_THROTTLE], (int)PWM_channel[PWM_R], (int)PWM_channel[PWM_N], (int)PWM_channel[PWM_G], (int)PWM_channel[PWM_POTI1], (int)PWM_channel[PWM_POTI2], //(signed int)hmcXvalue,//(int)PWM_channel[PWM_POTI2]+120, (int)PWM_channel[PWM_POTI3]); print_uart0(";00#"); }
uchar setup_p1(uchar para) { uchar status = 0, disp_stat = 0, i; uchar incr_step = 0,val; status = 0; disp_stat = 1; RTclock.timer2 = SETUP_TOUT_MS; //4sec RTclock.timer = 1000; //4sec while((RTclock.timer2 > 0)&&(status < 4)) { if(disp_stat == 1||(status == 0 && RTclock.timer == 0)) { set_cursor (0, 0); sprintf(str,"SETUP TIME "); lcd_print ((const unsigned char*)str); set_cursor (0, 1); sprintf(str,"%02d:%02d:%02d %02d",current_time.RTC_Hour,current_time.RTC_Min,current_time.RTC_Sec,status); lcd_print ((const unsigned char*)str); if(status>2) set_cursor (7, 1); else if(status>1) set_cursor (4, 1); else if(status>0) set_cursor (1, 1); if(status != 0) lcd_write_cmd (0x0F); /* Display ctrl:Disp=ON,Curs/Blnk=ON */ else { RTCGetTime(¤t_time); RTclock.timer = 1000; } disp_stat = 0; } switch(get_evnt_queue()) { // case WE_MODE: // lcd_write_cmd (0x0C); /* Display ctrl:Disp=ON,Curs/Blnk=OFF */ // status = 4; // break; case WE_ENTER: status++; if(status == 3) current_time.RTC_Sec = 0; if(status > 3) { status = 0; RTCSetTime(current_time); lcd_write_cmd (0x0C); /* Display ctrl:Disp=ON,Curs/Blnk=OFF */ } disp_stat = 1; break; case WE_UPHLD: incr_step = TRUE; case WE_UPKEY: if(status == 1) { if((current_time.RTC_Hour) < 23) current_time.RTC_Hour++; } else if(status == 2) { if((current_time.RTC_Min) < 59) current_time.RTC_Min++; } else if(status == 3) { if((current_time.RTC_Sec) < 59) current_time.RTC_Sec++; } disp_stat = 1; RTclock.timer2 = SETUP_TOUT_MS; //4sec break; case WE_DWNHLD: incr_step = TRUE; case WE_DWNKEY: if(status == 1) { if((current_time.RTC_Hour) > 0) current_time.RTC_Hour--; } else if(status == 2) { if((current_time.RTC_Min) > 0) current_time.RTC_Min--; } else if(status == 3) { if((current_time.RTC_Sec) > 0) current_time.RTC_Sec--; } disp_stat = 1; RTclock.timer2 = SETUP_TOUT_MS; //4sec break; // case WE_UPDWNREL: // incr_step = 0; // RTclock.timer2 = SETUP_TOUT_MS; //4sec // break; default: break; } } lcd_write_cmd (0x0C); /* Display ctrl:Disp=ON,Curs/Blnk=OFF */ return 0; }
//QuadCopt int main(void) { CSPR = CRP; //set code protection to none CycleCount = 0; printCount = 0; refreshCount = 0; I2C0Mode = 1; int oldSec = 0; int countComponentCheck = 0; int countToCalc = 0; int countToI2C = 0; int servoCount = 0; init_system(); print_uart0("FCm0;OsiFC v0.%d successful started;00#",VERSION); I2C0Mode = I2CMODE_FLIGHTMODE; I2C0State = 0; //I2C0Start(); while(1){ /* if (countComponentCheck++ > sysSetup.CYCLE.componentCycle) { //components enabled ? if (fcSetup.components[2] == 1) { if (navSol.packetStatus == 1 && PWM_channel[PWM_POTI1] > 80) { if (led2Status == 1) { LED2_OFF; led2Status = 0; } else { LED2_ON; led2Status = 1; } navSol.packetStatus = 0; } else { LED2_OFF; led2Status = 0; } } //compass enabled ? countComponentCheck = 0; } */ if (adcRead++ > adcRate) { ReadADC(); adcRead = 0; } if (countToCalc++ > sysSetup.CYCLE.calcCycle) { countToCalc = 0; CycleCount++; if (servoCount++ > 80){ setServo(); servoCount = 0; } checkUBat(); if (HMC5843Read++ > 130) { HMC5843Read = 0; //readHMC5843(); //heading = calcHeading(HMC_runtime.X_axis,HMC_runtime.Y_axis,HMC_runtime.Z_axis); } //print telemtrie ? if(printCount++ > sysSetup.CYCLE.telemetrieCycle && sysSetup.CYCLE.telemetrieCycle != 0) { printTelemetrie(); printCount = 0; } current_time = RTCGetTime(); if (current_time.RTC_Sec != oldSec) { I2C1Mode = 0; //adjustSensorDrift(); lastCycleCount = (int)CycleCount; CycleCount = 0; oldSec = current_time.RTC_Sec; } //the serial user interface always active serialUI(); //engines Off so do... if (engineStatus == ENGINE_OFF) { //check for I2C commands to be send out //this is mainly for YGE setup checkI2C(); //off flight RC UI to do setup and engines startup offFlightRcUI(); //the RC user interface off flight } //engines On so do... if (engineStatus == ENGINE_ON && PWM_valid >= 10000) { //check the in flight RC UI inFlightRcUI(); //the RC UI for in flight } I2C0Start(); } } return (1); }
int main(void) { static unsigned char buffer[BUFFER_SIZE]; unsigned short i; unsigned char timeout = 3; RTCTime local_time; SystemInit(); // IODIR0 |= (P0_15|P0_16|P0_17); // some outputs for debugging and measures //P0_16 ReadSector() in mmc_spi.c //P0_17 enc28j60 write packet //P0_15 general purpose, BE AWARE ! // uart1Init(B38400, UART_8N1, UART_FIFO_8); // setup the UART uart1Init(B115200, UART_8N1, UART_FIFO_8); // setup the UART rprintf_devopen( uart1_sendchar ); /* init rprintf */ VICIntEnClear = 0xFFFFFFFF; VICIntSelect = 0x00000000; RTCInit(); /* current date 05.08.2007 20:45:00*/ local_time.RTC_Sec = 0; local_time.RTC_Min = 45; local_time.RTC_Hour = 20; local_time.RTC_Mday = 5; local_time.RTC_Wday = 3; // My monday has 0 local_time.RTC_Yday = 1; local_time.RTC_Mon = 8; local_time.RTC_Year = 2007; RTCSetTime( local_time ); /* Set local time */ // RTCStart(); init_timer(); enableIRQ(); printf("Holgi's ARM7 LPC213x MultiFAT Speed Test\n\r"); MMC_IO_Init(); enc28j60_io_init(); // You don't need this ! It's for my board only. while (GetDriveInformation() != F_OK && timeout--) { printf ("MMC/SD-Card not found !\n\r"); HaltCPU(); } ShowDOSConfig(); // show selected DOS details from dosdefs.h /* // test time measurement StartTimer(); timer_value = SetDelay10ms(1000); // delay 10 seconds while(CheckDelay10ms(timer_value)==0); StopTimer(); // stop measure and show results // result is 2MB in 10s -> 200kB/s // end test time measurement */ printf("\nTest directory functions\n"); Chdir("dir1"); Remove("dir4"); Chdir("/"); // Back to root Remove("dir1"); Mkdir("dir1"); Chdir("dir1"); Mkdir("dir2"); Mkdir("dir3"); Rename("dir3","dir4"); Remove("dir2"); // You should have now: // dir1/dir4 Chdir("/"); // Back to root printf("\nDeleting files\n"); Remove("01.bin"); //Remove last data Remove("02.bin"); Remove("04.bin"); Remove("08.bin"); Remove("16.bin"); Remove("32.bin"); Remove("64.bin"); Remove("77.bin"); Remove("128.bin"); Remove("MAX.bin"); //Fill the test buffer for(i=0; i<BUFFER_SIZE; i++) buffer[i]=(unsigned char)(i); printf("\nStart writing files\n"); WriteTestFile("01.bin",buffer,1); WriteTestFile("02.bin",buffer,2); WriteTestFile("04.bin",buffer,4); WriteTestFile("08.bin",buffer,8); WriteTestFile("16.bin",buffer,16); WriteTestFile("32.bin",buffer,32); WriteTestFile("64.bin",buffer,64); WriteTestFile("77.bin",buffer,77); WriteTestFile("128.bin",buffer,128); WriteTestFile("MAX.bin",buffer,BUFFER_SIZE); printf("\nStart reading files\n"); ReadTestFile("01.bin",buffer,1); ReadTestFile("02.bin",buffer,2); ReadTestFile("04.bin",buffer,4); ReadTestFile("08.bin",buffer,8); ReadTestFile("16.bin",buffer,16); ReadTestFile("32.bin",buffer,32); ReadTestFile("64.bin",buffer,64); ReadTestFile("77.bin",buffer,77); ReadTestFile("128.bin",buffer,128); ReadTestFile("MAX.bin",buffer,BUFFER_SIZE); printf("\nVerifying files\n"); VerifyTestFile("32.bin",buffer,32); VerifyTestFile("64.bin",buffer,64); VerifyTestFile("77.bin",buffer,77); VerifyTestFile("128.bin",buffer,128); VerifyTestFile("MAX.bin",buffer,BUFFER_SIZE); printf("Test done.\n"); // test if RTC is running local_time=RTCGetTime(); printf("%02u:%02u:%02u %02u.%02u.%04u\n\r",local_time.RTC_Hour,local_time.RTC_Min,local_time.RTC_Sec ,local_time.RTC_Mday,local_time.RTC_Mon,local_time.RTC_Year ); while(1) { /* if(CheckDelay10ms(timer_value)) { timer_value = SetDelay10ms(1000); // delay 10 seconds // test if RTC is running local_time=RTCGetTime(); printf("%02u:%02u:%02u %02u.%02u.%04u\n\r",local_time.RTC_Hour,local_time.RTC_Min,local_time.RTC_Sec ,local_time.RTC_Mday,local_time.RTC_Mon,local_time.RTC_Year ); } */ } return(0); }
/***************************************************************************** ** Main Function rtc_main() ******************************************************************************/ void rtc_main (void) { /* SystemClockUpdate() updates the SystemFrequency variable */ SystemCoreClockUpdate(); /* Initialize RTC module */ RTCInit(); GUIDEMO_ShowIntro("Real Time Clock", "Showing" "\nReal Time Clock" "\nBy Siddharth Kaul"); GUI_Clear(); GUI_SetBkColor(GUI_BLUE); GUI_SetColor(GUI_LIGHTRED); GUI_Clear(); GUI_SetFont(&GUI_Font24B_1); local_time.RTC_Sec = 0; local_time.RTC_Min = 0; local_time.RTC_Hour = 0; local_time.RTC_Mday = 8; local_time.RTC_Wday = 3; local_time.RTC_Yday = 12; /* current date 07/12/2006 */ local_time.RTC_Mon = 7; local_time.RTC_Year = 2006; RTCSetTime( local_time ); /* Set local time */ alarm_time.RTC_Sec = 0; alarm_time.RTC_Min = 0; alarm_time.RTC_Hour = 0; alarm_time.RTC_Mday = 1; alarm_time.RTC_Wday = 0; alarm_time.RTC_Yday = 1; /* alarm date 01/01/2007 */ alarm_time.RTC_Mon = 1; alarm_time.RTC_Year = 2007; RTCSetAlarm( alarm_time ); /* set alarm time */ NVIC_EnableIRQ(RTC_IRQn); /* mask off alarm mask, turn on IMYEAR in the counter increment interrupt register */ RTCSetAlarmMask(AMRSEC|AMRMIN|AMRHOUR|AMRDOM|AMRDOW|AMRDOY|AMRMON|AMRYEAR); LPC_RTC->CIIR = IMMIN | IMYEAR; /* 2007/01/01/00:00:00 is the alarm on */ RTCStart(); while (1) { /* Loop forever */ current_time = RTCGetTime(); { char rtc_sec,rtc_min,rtc_hour; rtc_sec = current_time.RTC_Sec; rtc_min = current_time.RTC_Min; rtc_hour = current_time.RTC_Hour; GUI_DispCharAt(rtc_sec, 10, 10); GUI_DispCharAt(rtc_min, 14, 20); GUI_DispCharAt(rtc_hour, 18, 30); } } }