// --- EEPROM --- //

// EEPROM is a static class. it does not need to be initiated or created
// Each adress is 1 bytes in size. so if you store an int in adress 0, the first half will be in 0 and the second half will be stored in 1;
// Also note, EEPROM has a limited life span. each adress can only be updates around 100k times. this sould like a lot, until you realise that the CPU clock speed is 

EEPROM.length() -> returns number of unique adresses

EEPROM.get(INT address, ANY_OBJECT variableToBeAsigned)

EEPROM.read(INT address) -> reads a single byte

EEPROM.put(INT address, ANY_OBJECT variableToStore) -> Used to save multi-byte data to EEPROM. also works like .update

EEPROM.update(INT address, ANY_OBJECT variableToStore) -> check if the value in EEPROM address is different to
                                                          "variableToStore", if so, update the value. This is
                                                           to help maintain the life of EEPROM and mitiage un-nessersary ware

EEPROM.write() -> writes a single byte of data to said adress




// --- Arduino --- //

// does not need any kind of class, is available from the getgo

tone(pin, frequency, duration) -> play a tone for "duration" miliseconds
tone(pin, frequency) -> plays a tone indefinitly
noTone(pin) -> stops the buzzer




// --- GFX Library --- //

// needs to be created through constructor. input the width, height etc...

Adafruit_SSD1351 tft = Adafruit_SSD1351(SCREEN_WIDTH, SCREEN_HEIGHT, &SPI, CS_PIN, DC_PIN, RST_PIN);





// --- RF24 --- //

// needs to be created through constructor

RF24 radio(RF_ENABLE_PIN, CSN_PIN) -> create a radio object

radio.begin() -> init the radio. returns false if it fails to start 

radio.setPALevel(RF24_PA_LOW) -> able to set the volume ()


radio.startListening();  // put radio in RX mode