Autor Tema: Estructura Switch en CCS  (Leído 2280 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Duende_Azul

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 902
Estructura Switch en CCS
« en: 11 de Julio de 2011, 18:33:18 »
Saludos amigos...  Estoy portando un código escrito en pascal (Mikropascal específicamente) a C (ccs)  y me encuentro con esta situación:

En Pascal :

Código: [Seleccionar]
          case Rc6_EdgeCount of
            1: if Rc6_Time > Rc6_LEADER_TIME_BOUNDARY then Rc6_Error := false;
            2: if Rc6_Time < Rc6_LEADER_TIME_BOUNDARY then Rc6_Error := false;
            3,5,6,7,8: if Rc6_Time < Rc6_TIME_BOUNDARY then Rc6_Error := false;
            4: if Rc6_Time > Rc6_TIME_BOUNDARY then Rc6_Error := false;
               end;
   

Como pueden ver, esto equivale a un switch en C pero aquí hay 5 condiciones que hacen lo mismo (3,5,6,7,8) y no es necesario escribir 5 veces la misma cosa. La pregunta es.. en CCS se puede hacer eso mismo?  Ya probé con la coma, el punto y coma, los dos puntos y no me compila.

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Estructura Switch en CCS
« Respuesta #1 en: 11 de Julio de 2011, 18:41:08 »
si esas son tus unicas combinaciones posibles, puedes declarar las opciones 1,2 y4 , y las otras que hacen lo mismo ponerlas como default.

switch(Rc6_edgecount)
{
case 1:
//accion 1
break;

case 2:
//accion 2
break;

case 4:
//accion 4
break;
default:
//accion de 3,5,6,7 y 8
break;
}
"Nada es imposible, no si puedes imaginarlo"

Desconectado Duende_Azul

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 902
Re: Estructura Switch en CCS
« Respuesta #2 en: 11 de Julio de 2011, 18:44:59 »
Gracias por responder pero luego hay más opciones.. buscando por aquí y por allá me encontré con que es así:

Código: [Seleccionar]
                  case 3:
                  case 5:
                  case 6:
                  case 7:
                  case 8:
                       if (Rc6_Time < Rc6_TIME_BOUNDARY) Rc6_Error = false;
                  break;
 
 

al menos compila.. 

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Estructura Switch en CCS
« Respuesta #3 en: 11 de Julio de 2011, 19:37:26 »
al menos compila.. 


Es una opción valida...


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Estructura Switch en CCS
« Respuesta #4 en: 11 de Julio de 2011, 19:50:22 »
Gracias por responder pero luego hay más opciones.. buscando por aquí y por allá me encontré con que es así:

Código: [Seleccionar]
                  case 3:
                  case 5:
                  case 6:
                  case 7:
                  case 8:
                       if (Rc6_Time < Rc6_TIME_BOUNDARY) Rc6_Error = false;
                  break;
 
 

al menos compila.. 


eso debe funcionar, si entra a cualquier caso de estos se va a seguir hasta encontrar el break
"Nada es imposible, no si puedes imaginarlo"


 

anything