[SOLUCIONADO] Como incrementar el tiempo

Provisionalmente el tiempo tiene 3 minutos pero son fijos (180 segundos). Como podría añadir un pulsador que incremente el tiempo de 5 en 5 minutos hasta 45´’ ó 60’ para poder elegir la duración.
Saludos.

Adjunto codigo:

#include "TimerOne.h"
int timeLine=180;// Tiempo juego 3 minutos provisional
int homeScore=0;
int awayScore=0;
bool paused=0;//estado de start/stop

//Conectar pins del 2 al 7 a pulsadores
//El otro pin de los pulsadores a GND

// funcion de los pulsadores
//  2 Reset general
//  3 start/stop
//  4 +1 Local
//  5 -1 Local
//  6 +1 Visitante
//  7 -1 Visitante


void setup()
{
  int n;
  for (n=2;n<8;n++)
    pinMode(n,INPUT_PULLUP); 
  Serial.begin(9600); 
  Timer1.initialize();
  Timer1.attachInterrupt(updateTimeline);
}

//establecido por la rutina de interrupción para señalar la necesidad de actualizar la pantalla
bool timeUpdated=true;
void loop()
{
int n;
  bool debounce=false;

// Ver como están las entradas
  for (n=2;n<8;n++)
    if(digitalRead(n)==LOW)
    {
      debounce=true;
      switch(n)
      {
      case 2://reset
        timeLine=180;// Tiempo 3 minutos provisional
        homeScore=0;
        awayScore=0;
        paused=true;
        break;

      case 3:// start/Stop
        paused=!paused;
        break;

      case 4:// +1 Local
        homeScore++;
        break;
      case 5://-1 Local
        if(homeScore>0) 
          homeScore--;
        break;
      case 6:// +1 Visitante
        awayScore++;
        break;
      case 7:// -1 Visitante
        if(awayScore>0) 
          awayScore--;
        break;    
      }
    }
  //Ahora actualizar la pantalla (pero sólo si UPDATETIME ha ejecutado desde la última vez)
  if(timeUpdated)
    updateDisplay();
  if(debounce) 
    delay(400);
}

void updateDisplay()
{
  char timeString[6];
  sprintf(timeString,"%d:%d",timeLine/60,timeLine%60);
  Serial.println(timeString);
  char scoreline[20];
  sprintf(scoreline,"Local %d:%d Visitante",homeScore,awayScore);
  Serial.println(scoreline);
  timeUpdated=false;
}

void updateTimeline()
{
  if(!paused)
    timeLine--;
  timeUpdated=true;

}

Bueno como no veo en uso el pin 8, usaré ese para tu respuesta

 case 8: // incremento timeLine

        timeLine += 5*60
        break;

[/code]

haz corresponder este case con un switch

Algo estoy haciendo mal. Incluyo :

case 8: // incremento timeLine
timeLine += 5*60
break;

Me da este error.....

marcaX.ino: In function 'void loop()':
marcaX:71: error: expected `;' before 'break'

Cuando cargo el hex se pone en marcha sin pulsar start/stop. Como se puede solventar....? :
Lo ideal sería que solo se inicialice .....cuando pulse el swich de start/stop.
Salu2

francisco2v:
Algo estoy haciendo mal. Incluyo :

case 8: // incremento timeLine
timeLine += 5*60
break;

Me da este error.....

marcaX.ino: In function 'void loop()':
marcaX:71: error: expected `;' before 'break'

Cuando cargo el hex se pone en marcha sin pulsar start/stop. Como se puede solventar....? :
Lo ideal sería que solo se inicialice .....cuando pulse el swich de start/stop.
Salu2

falta un punto y coma

timeLine += 5*60;

Gracias …ahora si incrementa +5 minutos por pulsación. Cambie for (n=2;n<8;n++)… por… for(n=2;n<9;n++) y añadi :

case 8: // incremento timeLine
timeLine += 5*60;
break;

Lo que nos faltaría ahora … es que solo empiece a descontar el timeLine cuando pulse el pulsador start/sop.
Ahora solo conectar ya empieza a descontar sin pulsar el pulsador start/stop.
Cuado empieza a descontar y llega a 0 segundos sigue contando en negativo y se tendría que parar en 0
que he olvidado…?

Salu2

hay francisco2v, deja de copiar y pegar... ya deberías poder interpretar los errores. Como bien te dijo GO_zalo.

míralo una vez mas

Me da este error.....

marcaX.ino: In function 'void loop()':
marcaX:71: error: expected `;' before 'break'

Dice:

  1. marcaX.ino: In function 'void loop()': que tienes un error en void loop()
  2. marcaX:71: error: te da la línea. Y es la 71.
  3. expected `;' before 'break' y con precesición te dice que es.

Así que apunta la falla.
A mi se me pasó. Confieso pero ya deberías identificar estas simples cosas y resolverlas.

Tirón de orejas, dicho con respeto.

Muchas veces tengo la solución delante de mis ojos y ...me ofusco con los errores y no lo relaciono. Tengo que prestar más atención.
Salu2