/** 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(); TCP_Init(); Webserver_Init(); LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY); sei(); for (;;) { if (Ethernet_RNDIS_Interface.State.FrameIN.FrameInBuffer) { LEDs_SetAllLEDs(LEDMASK_USB_BUSY); Ethernet_ProcessPacket(&Ethernet_RNDIS_Interface.State.FrameIN, &Ethernet_RNDIS_Interface.State.FrameOUT); LEDs_SetAllLEDs(LEDMASK_USB_READY); } TCP_TCPTask(&Ethernet_RNDIS_Interface); RNDIS_Device_USBTask(&Ethernet_RNDIS_Interface); USB_USBTask(); } }
/** 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(); TCP_Init(); Webserver_Init(); LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY); sei(); for (;;) { if (RNDIS_Device_IsPacketReceived(&Ethernet_RNDIS_Interface)) { LEDs_SetAllLEDs(LEDMASK_USB_BUSY); RNDIS_Device_ReadPacket(&Ethernet_RNDIS_Interface, &FrameIN.FrameData, &FrameIN.FrameLength); Ethernet_ProcessPacket(&FrameIN, &FrameOUT); if (FrameOUT.FrameLength) { RNDIS_Device_SendPacket(&Ethernet_RNDIS_Interface, &FrameOUT.FrameData, FrameOUT.FrameLength); FrameOUT.FrameLength = 0; } LEDs_SetAllLEDs(LEDMASK_USB_READY); } TCP_TCPTask(&Ethernet_RNDIS_Interface, &FrameOUT); RNDIS_Device_USBTask(&Ethernet_RNDIS_Interface); USB_USBTask(); } }
/** Main program entry point. This routine configures the hardware required by the application, then * enters a loop to run the application tasks in sequence. */ int main(void) { SetupHardware(); /* Webserver Initialization */ TCP_Init(); Webserver_Init(); LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY); GlobalInterruptEnable(); for (;;) { Ethernet_Task(); TCP_Task(); RNDIS_Task(); USB_USBTask(); } }