/*****************************************************************************
**   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();	
	}
  }

}
Beispiel #2
0
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");
}
Beispiel #3
0
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#");
}
Beispiel #4
0
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#");
}
Beispiel #5
0
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(&current_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;
}
Beispiel #6
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);
}
Beispiel #7
0
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);
	 }	
	}
  

}