Pages: [1]   Go Down
Author Topic: Unificar 4 Programas con 4 estados de 2 Interruptores en IDE  (Read 1664 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola amigos..  desde hace poco que estoy utilizando la plataforma de Arduino me compre un Mega 2560 R3 y probé con éxito un programa que realice, la duda viene en lo siguiente..

Es factible unir 3 o mas programas en diferentes Hojas del Ide.

Me explico quiero ejecutar una programa con su declaración de variables y todo, tal como si recetara el la placa y volver a partir leyendo desde la primera línea..

Para ello quería utilizar dos interruptores, que dependiendo de su estado puedan saltar a 4 Hojas con diferentes programas. La idea es tener de manera ordenada en diferentes hojas cada programa para poder modificarlo con facilidad según sea el caso.

Pero no se como se logra esto, o si es factible hacerlo como digo.

El If podría ser un opción para comenzar a leer el estado de los Interruptores, pero como saltar luego de esto a la hoja con todo un programa de nuevo.

El por que tengo que comenzar de nuevo a leer las variables, es por que tienen direcciones distintas al declararlas, ya que es un proyecto Midi, y cada hoja tendrá una escala diferente dentro del teclado Midi.

El programa esta funcionando separadamente para cada escala, mi idea es unirlo como les decía, así no tengo que estar rescribiendo el programa cada ves que quiero tocar una nueva escala, con los mismos 4 o 5 sensores que leo desde el exterior.

Agradecería cualquier orientación al respecto.

Saludos cordiales.
J.Lezana
Logged

Spain
Offline Offline
Full Member
***
Karma: 0
Posts: 191
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

En un sketch del IDE solo puede haber un setup() y un loop(), independientemente de los archivos que incluyas.

Lo que quieres hacer se puede realizar dentro de un único programa (hace poco leí un post donde lo explicaban, pero creo que era en inglés, no recuerdo):

Code:
setup()
{
  ... // Inicialización global
}

loop()
{
  if(OpcionPrograma1) // Puede ser un pulsador, leer de la EEPROM un valor, ...
  {
    setup_programa1();
    while(1)
      loop_programa1();
  }
  else if(OpcionPrograma2) // Puede ser un pulsador, leer de la EEPROM un valor, ...
  {
    setup_programa2();
    while(1)
      loop_programa2();
  }
  ... // Repetir con las opciones que quieras
}

Después tendrías que renombrar cada uno de los setup() y loop() que quieres utilizar como setup_programa1, loop_programa1, setup_programa2, loop_programa2, setup_programa3, loop_programa3, ... y añadirlos al proyecto
Logged

Spain
Offline Offline
Full Member
***
Karma: 0
Posts: 191
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

He encontrado el post (está en inglés):
http://arduino.cc/forum/index.php/topic,107653.0.html
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

He encontrado el post (está en inglés):
http://arduino.cc/forum/index.php/topic,107653.0.html

Jorge Muchas Gracias por tu respuesta..  llegando lo probare.. a ver si resulta

Ahora dejar cada programa en diferentes pestañas de Ide se puede??
o cada pestaña del ide es un Sketch diferente..   en algún lado que no puedo dar con el.. vi un ejemplo que al abrir el programa principal, se habrían varias pestañas mas que eran llamadas desde la pestaña principal y contenían parte del código para diferentes secciones, por ejemplo Servo_control. GPS, Control_PID  etc..  así uno iba a la pestaña que quería modificar, sin buscar dentro de una pestaña todo un programa que puede ser muy extenso.. no se si me explico bien..

Saludos
J.Lezana
Logged

Spain
Offline Offline
Full Member
***
Karma: 0
Posts: 191
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pueden estar en diferentes pestañas, pero tienes que renombrarlos como te he comentado. Sino, al compilar te dará errores porque el compilador encontrará varios loop() y varios setup() y no sabrá cuál es cuál.
Logged

Pages: [1]   Go Up
Jump to: