Hi! I work with Nextion display, carrying the own microcontroller. Pressing the touch screen buttons, display sends on the serial port (which I hung on SoftwareSerial, pins 2 and 3, because UNO has only one built-in port) to boards lines. But if there are delays in loop, pressing not processed. How can I implement interrupt processing touchscreen response? I would be very grateful for the help.
Example:
#include "Nextion.h"
/*
* Declare a button object [page id:0,component id:1, component name: "b0"].
*/
NexButton b0 = NexButton(0, 1, "b0");
char buffer[100] = {0};
/*
* Register a button object to the touch event list.
*/
NexTouch *nex_listen_list[] =
{
&b0,
NULL
};
/*
* Button component pop callback function.
* In this example,the button's text value will plus one every time when it is released.
*/
void b0PopCallback(void *ptr)
{
uint16_t len;
uint16_t number;
NexButton *btn = (NexButton *)ptr;
memset(buffer, 0, sizeof(buffer));
/* Get the text value of button component [the value is string type]. */
btn->getText(buffer, sizeof(buffer));
number = atoi(buffer);
number += 1;
memset(buffer, 0, sizeof(buffer));
itoa(number, buffer, 10);
/* Set the text value of button component [the value is string type]. */
btn->setText(buffer);
}
void setup(void)
{
/* Set the baudrate which is for debug and communicate with Nextion screen. */
nexInit();
/* Register the pop event callback function of the current button component. */
b0.attachPop(b0PopCallback, &b0);
}
void loop(void)
{
/*
* When a pop or push event occured every time,
* the corresponding component[right page id and component id] in touch event list will be asked.
*/
nexLoop(nex_listen_list);
delay(500);
}