Go Down

Topic: switch case anidados (Solucionado) (Read 4937 times) previous topic - next topic

IgnoranteAbsoluto

Efectivamente. No funciona. El fallo está en que si no se pulsan las teclas esperadas el default: "reinicia" la máquina de estados y por el default: se me está colando el caso de no haber ninguna tecla pulsada. Para corregirlo basta con poner un primer case.

Code: [Select]

  switch (pulsacion) {
      case NO_KEY :
          break;


NO_KEY es una constante de la librería que está definida con el valor 0, que es el valor que retorna si no hay ninguna tecla pulsada.

IgnoranteAbsoluto

Y por lo que veo, en el que puse de los servos he cometido el mismo error. Así que tal como está no ha de funcionar, le falta el mismo case.

Siento tanto quebradero de cabeza. Eso me pasa por no haber probado el código, pero es que no tengo teclado de ese tipo y lo he tenido que depurar con un Arduino Uno un par de cables y un pulsador.  :(

Adrian_E


Adrian_E

Funciona perfectamente, gracias, me sirve de mucho ya que yo aprendí mucho por sólo preguntar sobre switch anidados :)

surbyte

#34
Jan 15, 2018, 02:31 am Last Edit: Jan 15, 2018, 02:32 am by surbyte
Adrian_E has visto que dejé de responder porque la verdad este ha sido tu consulta mas errática.

Debes volver a leer lo que escribes y seguir el hilo de lo que se te responde.
Admiro la paciencia de IgnoranteAbsoluto pero coincido en que es como que te hablan y sigues en lo tuyo.

Finalmente has resuelto el problema pero lo que veo es que estas saltando pasos y no estas siguiendo un libro y aprendiendo C y Arduino en el proceso que es justamente tu gran dolor de cabeza.


Adrian_E

ok, no, no estoy aprendiendo C, lo que pasa es que tuve ir a la fuente de arduino, porque me parecía que se me escapaba algo, ya que en la referencia de arduino, https://www.arduino.cc/reference/en/language/structure/control-structure/switchcase/ y que es muy pobre en su explicacion, y no habla de anidar,y mas tomando en cuenta que ingnoranteabsoluto, me parece a mi pero se mueve mucho por C++, entonces busque en foros  de programación específicos de C, C++, entonces decidi primero ver como realmente se anida, y la solucion de problemas, lo que ignoranteabsoluto, me despejo muchas dudas, arrancando por esta sentencia que no la tenia
Code: [Select]
case NO_KEY :
          break;
y la forma de que debo usar para trabajar con las entrada de teclado en switch, por eso cambie de servo al usar leds, para que se entienda que lo quería entender como se anida y me parecio que el uso de led era menos complicado para explicarme.

surbyte

Pero yo te lo digo con la mejor intención.
Además sabes que vengo viendo tu evolución y de ahi mi comentario.

No hay como un libro para aprender. Incluso lo que estas haciendo porque proyectos con teclados matriciales son parte de la enseñanza.


Adrian_E

no lo tome a mal a tu comentario, trate de explicar porque tuve que ller sobre c++, el libro que tengo Arduino Curso practico de formación de Oscar Torrente Artero, pero de teclado de matriz nada, solo una referencia a keypads, despues lo de la web, que mucho de lo que hay confunde mas de lo que aclara, me refiero por ejemplo al uso del switch-case.

Go Up