int main(void) { // Initialize hardware initHW(); // Display greeting putsUart0("Serial Example\r\n"); putsUart0("Press '0' or '1'\r\n"); putcUart0('a'); BLUE_LED = 1; // Wait for PB press waitPbPress(); // For each received character, toggle the red LED // For each received "1", set the green LED // For each received "0", clear the green LED while(1) { char c = getcUart0(); RED_LED ^= 1; if (c == '1') GREEN_LED = 1; if (c == '0') GREEN_LED = 0; } }
// Blocking function that writes a string when the UART buffer is not full void putsUart0(char* str) { int i; for (i = 0; i < strlen(str); i++) putcUart0(str[i]); }
int main(void) { // uint8_t* udpData; uint8_t* tcpData; uint8_t p=0; uint16_t i=0; Seq_number=0xfb0983f7; Ack_number=0x00000; myport=0xb921; id=0x1229; uint8_t* http; // init controller initHw(); putsUart0("\r\nWeather forecast\r\n"); // init ethernet interface etherInit(ETHER_UNICAST | ETHER_BROADCAST | ETHER_HALFDUPLEX); etherSetIpAddress(192,168,137,199); // flash phy leds etherWritePhy(PHLCON, 0x0880); RED_LED = 1; waitMicrosecond(500000); etherWritePhy(PHLCON, 0x0990); RED_LED = 0; waitMicrosecond(500000); sendSynWeather(data); // message loop while (1) { if (etherKbhit()) { if (etherIsOverflow()) { RED_LED = 1; waitMicrosecond(100000); RED_LED = 0; } // get packet etherGetPacket(data, 1500); // handle arp request if (etherIsArp(data)) { etherSendArpResp(data); RED_LED = 1; // GREEN_LED = 1; waitMicrosecond(50000); RED_LED = 0; GREEN_LED = 0; } // handle ip datagram if (etherIsIp(data)) { if (etherIsIpUnicast(data)) { // handle icmp ping request if (etherIsPingReq(data)) { etherSendPingResp(data); GREEN_LED = 1; waitMicrosecond(50000); GREEN_LED = 0; } if(etherIsTcp(data)) { tcpData = etherGetTcpData(data); if(etherisHandshake1(data)) { etherRespondtoHandshake1(data); RED_LED = 1; //GREEN_LED=1; BLUE_LED=1; waitMicrosecond(100000); RED_LED = 0; //GREEN_LED=0; BLUE_LED=0; break; } } } } } } sendGETRequest(data); while(1) { if (etherKbhit()) { etherGetPacket(data, 1500); if(etherIsTcp(data)) { RED_LED = 1; //GREEN_LED=1; BLUE_LED=1; waitMicrosecond(100000); RED_LED = 0; //GREEN_LED=0; BLUE_LED=0; if(p<=7) { if(tcp_DataCount>0) etherRespondToData(data); } //if(p>=2) { //p=0; tcpData = etherGetTcpData(data); http=tcpData+9; if((*http==0x32))//|(*http==0x35)) { tcpData=tcpData+299; for(i=0;i<(tcp_DataCount-299);i++) { putcUart0(*tcpData); tcpData++; } if(*http==0x32) break; } //break; //sendFinRequest(data); } p++; } } } while(1); return 0; }