ESP32 Interrupts
#include <>
/*F********************************************************************
*
**********************************************************************/
// https://github.com/Bodmer/TFT_eSPI Hardware-specific library
#include <TFT_eSPI.h>
#include <rom/gpio.h>
// https://github.com/buxtronix/arduino/blob/master/libraries/Rotary/examples/interrupt/interrupt.ino
//#include <Rotary.h>
//************************* DEFINES ************************************
#define DISPLAYWIDTH 320
#define DISPLAYHEIGHT 240
#define MSGSWITCH1 22 // The message NO pushbutton switches
#define MSGSWITCH2 17
#define MSGSWITCH3 16
#define TFT_MISO 19 // From ESP32 TFT User_Setup.h
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_CS 15 // Chip select control pin
#define TFT_DC 2 // Data Command control pin
#define TFT_RST 4 // Reset pin ( could connect to RST pin )
#define BAUD 9600
//************************* PROTOTYPES ************************************
void ReadMessageSwitch1();
void MyDelay( unsigned long millisWait );
void SendMessage( int messageSwitch );
//************************* VARIABLES ************************************
char contestExchanges[5][31] = { " ",
"ABCDEFGHIJKLMNOPQRST", };
// DO NOT CHANGE. 30 SPACES TO CREATE 1-BASED ARRAY AND USED FOR ERASING MESSAGES
// EXCHANGE MESSAGE FOR CONTEST OR COMMON INFO // GENERAL CQ. CHANGE AS NEEDED
TFT_eSPI tft = TFT_eSPI();
/*F********************************************************************
*
**********************************************************************/
void
setup()
{
Serial.begin( BAUD );
pinMode( MSGSWITCH1, INPUT_PULLUP ); // MESSAGE SWITCHES
attachInterrupt( digitalPinToInterrupt( MSGSWITCH1 ), ReadMessageSwitch1
, CHANGE ); // MESSAGE TO SEND
tft.setTextColor( TFT_WHITE, TFT_BLACK );
}
/*F********************************************************************
*
**********************************************************************/
void
loop()
{ }
/*F********************************************************************
*
**********************************************************************/
void
ReadMessageSwitch1()
{
SendMessage( 1 );
}
/*F********************************************************************
*
**********************************************************************/
void
MyDelay( unsigned long millisWait )
{
unsigned long now = millis();
while( millis() - now < millisWait )
; // Twiddle thumbs...
}
/*F********************************************************************
*
**********************************************************************/
void
SendMessage( int messageSwitch )
{
char *msg = &contestExchanges[1][0];
int letterCount = 0;
int rowCount = 0;
tft.fillRect( 0, 0, DISPLAYWIDTH, DISPLAYWIDTH,0 ); // Erase screen
tft.setCursor( 0, 20 );
Serial.print( "In SendLetters(), msg = " );
Serial.println( msg );
// MyDelay( 500L );
while ( *msg != '\0' )
tft.print( *msg++ );
}