Problema con case 3:


al pulsar el pulsador correspondiente del case 3:, me descuenta 1 en setjuego...pero su vez me incrementa 1 en localmarcador que no lo debe hacer.


code: [select]
#include "timerone.h"  // libreria
int localmarcador=0;// variable equipo local
int visitantemarcador=0;// variable equipo visitante
int setjuego=0;// variable set que se juega

//conectar pins del 2 al 7 pulsadores
//el otro pin de los pulsadores gnd

// funcion de los pulsadores
//  2 + set
//  3 - set
//  4 +1 local
//  5 -1 local
//  6 +1 visitante
//  7 -1 visitante


void setup()
{
  int n;
  for (n=2;n<9;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<9;n++)
    if(digitalread(n)==low)
    {
      debounce=true;
      switch(n)
      {
      case 2:// + setjuego
         setjuego++;
        break;
        case 3:// - setjuego
        if(setjuego>0)
          setjuego--;
        case 4:// +1 local
        localmarcador++;
        break;
      case 5://-1 local
        if(localmarcador>0)
          localmarcador--;
        break;
      case 6:// +1 visitante
        visitantemarcador++;
        break;
      case 7:// -1 visitante
        if(visitantemarcador>0)
          visitantemarcador--;
        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];
  serial.println(timestring);
  char scoreline[30];
  sprintf(scoreline,"local %d:%d visitante: %d setjuego:",localmarcador,visitantemarcador,setjuego);
  serial.println(scoreline);
  timeupdated=false;
}
void updatetimeline()
{
timeupdated=true;
}


le dado varias vueltas y sigo sin comprender.
me pueden explicar (para aprender) como se representaría en 5  display  de 7 seg.  con  74hc595.
gracias

en case 3, te falta el break


Arduino Forum > International > Español > Software (Moderators: surbyte, Hector_A) > Problema con case 3:


arduino

Comments