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