multiplayer pong game for LPC 1768

Dependencies:   mbed MbedJSONValue mbed-rtos Adafruit_ST7735 Adafruit_GFX EthernetInterface DebouncedInterrupt

Committer:
vsoltan
Date:
Thu Nov 12 04:44:05 2020 +0000
Revision:
14:6b20a930e1cb
Parent:
13:95d44f7855ca
Child:
15:9d90f68e53da
added socket communication

Who changed what in which revision?

UserRevisionLine numberNew contents of line
donatien 1:8e1d4987eb90 1 #include "mbed.h"
donatien 1:8e1d4987eb90 2 #include "EthernetInterface.h"
vsoltan 11:d0a105f6743f 3 #include "network.h"
denizguler 13:95d44f7855ca 4 #include "DebouncedInterrupt.h"
vsoltan 12:91affff3be75 5
vsoltan 14:6b20a930e1cb 6 #define DEBOUNCE 50
vsoltan 12:91affff3be75 7
denizguler 13:95d44f7855ca 8 DebouncedInterrupt leftButton(p21);
denizguler 13:95d44f7855ca 9 DebouncedInterrupt middleButton(p22);
denizguler 13:95d44f7855ca 10 DebouncedInterrupt rightButton(p23);
vsoltan 12:91affff3be75 11
vsoltan 12:91affff3be75 12 EthernetInterface eth;
vsoltan 12:91affff3be75 13 UDPSocket sock;
vsoltan 12:91affff3be75 14 Endpoint nist;
vsoltan 12:91affff3be75 15
denizguler 13:95d44f7855ca 16 volatile int count = 0;
vsoltan 14:6b20a930e1cb 17 volatile int sendFlag = 0;
vsoltan 14:6b20a930e1cb 18 volatile int moveData = 0;
denizguler 13:95d44f7855ca 19
vsoltan 12:91affff3be75 20 // interrupt service routines
denizguler 13:95d44f7855ca 21 void pressLeft( void ) {
vsoltan 14:6b20a930e1cb 22 sendFlag = 1;
vsoltan 14:6b20a930e1cb 23 moveData--;
vsoltan 12:91affff3be75 24 }
vsoltan 12:91affff3be75 25
vsoltan 12:91affff3be75 26 void pressMiddle() {
vsoltan 14:6b20a930e1cb 27 // count++;
vsoltan 12:91affff3be75 28 }
vsoltan 12:91affff3be75 29
vsoltan 12:91affff3be75 30 void pressRight() {
vsoltan 14:6b20a930e1cb 31 sendFlag = 1;
vsoltan 14:6b20a930e1cb 32 moveData++;
vsoltan 12:91affff3be75 33 }
emilmont 6:25aad2d88749 34
emilmont 6:25aad2d88749 35 int main() {
denizguler 13:95d44f7855ca 36 initEthernet(&eth, &sock, &nist);
emilmont 7:dedf5dde9798 37
vsoltan 12:91affff3be75 38 // initialize GPIO
denizguler 13:95d44f7855ca 39 leftButton.attach(&pressLeft, IRQ_RISE, DEBOUNCE);
denizguler 13:95d44f7855ca 40 middleButton.attach(&pressMiddle, IRQ_RISE, DEBOUNCE);
denizguler 13:95d44f7855ca 41 rightButton.attach(&pressRight, IRQ_RISE, DEBOUNCE);
vsoltan 12:91affff3be75 42
vsoltan 14:6b20a930e1cb 43 char toSend[] = "{\"type\": \"connected\", \"data\": \"Ay whats good\"}";
vsoltan 14:6b20a930e1cb 44 char readTo[256];
vsoltan 14:6b20a930e1cb 45
denizguler 13:95d44f7855ca 46 while (1) {
vsoltan 14:6b20a930e1cb 47 if (sendFlag != 0) {
vsoltan 14:6b20a930e1cb 48 printf("Move value: %i\n\r", moveData);
vsoltan 14:6b20a930e1cb 49 sendFlag = 0;
vsoltan 14:6b20a930e1cb 50 moveData = 0;
vsoltan 14:6b20a930e1cb 51 sock.sendTo(nist, toSend, sizeof(toSend) - 1);
vsoltan 14:6b20a930e1cb 52 }
vsoltan 14:6b20a930e1cb 53 int bytesRead = sock.receiveFrom(nist, readTo, sizeof(readTo));
vsoltan 14:6b20a930e1cb 54 printf("Reading: %i bytes, data: %s\n\r", bytesRead, readTo);
vsoltan 14:6b20a930e1cb 55 wait(.1);
denizguler 13:95d44f7855ca 56 }
vsoltan 11:d0a105f6743f 57
vsoltan 14:6b20a930e1cb 58 cleanupEthernet(&eth, &sock);
donatien 1:8e1d4987eb90 59 }