/* Main program entry point. This routine contains the overall program flow, including initial setup of all components and the main program loop.  */
int main(void)
/* Main program entry point. This routine contains the overall program flow, including initial setup of all components and the main program loop.  */
int main(void)
{
	SetupHardware();
	LoggingInterval500MS_SRAM = eeprom_read_byte(&LoggingInterval500MS_EEPROM);
	if (LoggingInterval500MS_SRAM == 0xFF)
	  LoggingInterval500MS_SRAM = DEFAULT_LOG_INTERVAL;
	OpenLogFile();
	LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
	GlobalInterruptEnable();
	for (;;)
	{
		MS_Device_USBTask(&Disk_MS_Interface);
		HID_Device_USBTask(&Generic_HID_Interface);
		USB_USBTask();
	}
}