#pragma GCC optimize ("Og")
#include "ArduinoTrace.h"
//84 37 25
volatile byte dato1,dato2,dato3,mayor,resultado;
String msg="";
// volatile byte dato1=37,dato2=37,dato3=25,mayor,resultado; //prueba2
// volatile byte dato1=12,dato2=37,dato3=25,mayor,resultado; //prueba3

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  Serial.println("INICIO");

  Serial.println("Entrar dato1: ");
  while(msg=="")
  {
    msg=readSerialMsg();
  }
  dato1=msg.toInt();

  Serial.println("Entrar dato2: ");
  msg="";
  while(msg=="")
  {
    msg=readSerialMsg();
  }
  dato2=msg.toInt();
  
  Serial.println("Entrar dato3: ");
  msg="";
  while(msg=="")
  {
    msg=readSerialMsg();
  }
  dato3=msg.toInt();

  //------------- Proceso en alto nivel -------------------
  if(dato1 > dato2)
  {
    mayor=dato1;
    resultado=mayor-dato3;
  }
  else
  {
    mayor=dato2;
    resultado=mayor+dato3;
  }
  //------------------------------------------------------
  
  DUMP(dato1);
  DUMP(dato2);
  DUMP(dato3)
  DUMP(mayor);
  DUMP(resultado);

}
void loop() {

}
//----------- lectura de string enviada via monitor serie -----//
String readSerialMsg()
{
  String message="";
  char incomingChar;
  while (Serial.available())
  {
    char incomingChar = Serial.read();
    if (incomingChar != '\n'){
      message += String(incomingChar);
    }
    else{
      return message;
    }
    delay(1);
  }
  return "";
}