Integrating nextion display

Hi there, it’s me again. I am trying to integrate a nextion display into a project. I am trying to have the servo go from 5 through 175 degrees. After that I want it to listen to the display and have the display control the servo until the input from the display is greater than 100. After that I want it to loop again. The code below is what I thought would work but it doesn’t. If you have any other ideas I would love to hear.

#include "Nextion.h"
#include <Servo.h>
Servo myservo;
int number = 90;


void n0PopCallback(void *ptr);
void b0PopCallback(void *ptr);
void b1PopCallback(void *ptr);

/*
   Declare a number object [page id:0,component id:3, component name: "n0"].
*/
NexNumber n0 = NexNumber(0, 3, "n0");
NexButton b0 = NexButton(0, 1, "b0");
NexButton b1 = NexButton(0, 2, "b1");


char buffer[10] = {0};

/*
   Register object n0, b0, b1, to the touch event list.
*/
NexTouch *nex_listen_list[] =
{
  &n0,
  &b0,
  &b1,
  NULL
};

//   number component pop callback function.

void n0PopCallback(void *ptr)
{
  dbSerialPrintln("n0PopCallback");
  n0.setValue(50);
}

//   Button0 component pop callback function.
//   In this example,the value of the number component will plus one every time when button0 is released.

void b0PopCallback(void *ptr) {
  uint32_t number;
  dbSerialPrintln("b0PopCallback");
  n0.getValue(&number);
  if (number >= 175) {
    number = 175;
  }
  else {
    number += 5;
    myservo.write(number);
  }
  n0.setValue(number);
  return number;
}

/*
   Button1 component pop callback function.

    n0.getValue(&number);
   In this example,the value of the number component will minus one every time when button1 is released.
*/
void b1PopCallback(void *ptr) {
  uint32_t number;
  dbSerialPrintln("b1PopCallback");
  n0.getValue(&number);
  if (number <= 5) {
    number = 5;
  }
  else {
    number -= 5;
    myservo.write(number);
  }
  n0.setValue(number);
  return number;
}


void setup()
{


  /* Set the baudrate which is for debug and communicate with Nextion screen. */
  nexInit();
  myservo.attach(9);


  /* Register the pop event callback function of the current number component. */
  n0.attachPop(n0PopCallback);
  b0.attachPop(b0PopCallback);
  b1.attachPop(b1PopCallback);


  dbSerialPrintln("setup done");
}

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.
  */
  myservo.write(5);
  delay(1000);
  myservo.write(175);
  delay(1000);

  //This sub routine is supposed to run until the servo reaches an angle of 100
  subRoutine();

}
void subRoutine() {

  //  number = nexLoop(nex_listen_list);
  number = nex_listen_list;
  while (number < 100) {
    number = nex_listen_list;
  }

The code below is what I thought would work but it doesn't.

That's a real shame.

Unless you tell us what the code actually does, and how that differs from what you want, all we can offer is sympathy.

Yea, I guess that would be useful information. The code is supposed to run the servo from 5 to 175 degrees and then listen to the nextion display. On the display, you should be able to change the angle. After you change the angle to a number greater than 100 it is supposed to loop continuously. What the code actually does is just moves the servo from 5 to 175 and just keeps repeating that.

void b0PopCallback(void *ptr) {
  return number;
}

It is pointless to try to return a value from a function who’s return type is void.

NexTouch *nex_listen_list[] =

void subRoutine() {

  //  number = nexLoop(nex_listen_list);
  number = nex_listen_list;
  while (number < 100) {
    number = nex_listen_list;
  }

In the stupidly named function, set number to the address of the array of pointers. While that number is less than 100, do the same stupid thing forever.

I am POSITIVE that there is not an example in the known universe that does that.