multiplayer pong game for LPC 1768

Dependencies:   mbed MbedJSONValue mbed-rtos Adafruit_ST7735 Adafruit_GFX EthernetInterface DebouncedInterrupt

main.cpp

Committer:
vsoltan
Date:
2020-11-12
Revision:
14:6b20a930e1cb
Parent:
13:95d44f7855ca
Child:
15:9d90f68e53da

File content as of revision 14:6b20a930e1cb:

#include "mbed.h"
#include "EthernetInterface.h"
#include "network.h"
#include "DebouncedInterrupt.h"

#define DEBOUNCE 50

DebouncedInterrupt leftButton(p21);
DebouncedInterrupt middleButton(p22);
DebouncedInterrupt rightButton(p23);

EthernetInterface eth; 
UDPSocket sock; 
Endpoint nist; 

volatile int count = 0;
volatile int sendFlag = 0; 
volatile int moveData = 0;

// interrupt service routines 
void pressLeft( void ) {
    sendFlag = 1;
    moveData--; 
}

void pressMiddle() {
//    count++;
}

void pressRight() {
    sendFlag = 1;
    moveData++; 
}
 
int main() {
     initEthernet(&eth, &sock, &nist); 
    
    // initialize GPIO
    leftButton.attach(&pressLeft, IRQ_RISE, DEBOUNCE);
    middleButton.attach(&pressMiddle, IRQ_RISE, DEBOUNCE);
    rightButton.attach(&pressRight, IRQ_RISE, DEBOUNCE);
    
    char toSend[] = "{\"type\": \"connected\", \"data\": \"Ay whats good\"}"; 
    char readTo[256]; 
    
    while (1) {
        if (sendFlag != 0) {
            printf("Move value: %i\n\r", moveData); 
            sendFlag = 0; 
            moveData = 0; 
            sock.sendTo(nist, toSend, sizeof(toSend) - 1);
        }
        int bytesRead = sock.receiveFrom(nist, readTo, sizeof(readTo)); 
        printf("Reading: %i bytes, data: %s\n\r", bytesRead, readTo); 
        wait(.1);
    }

    cleanupEthernet(&eth, &sock);
}