Autor Tema: Error de compilación - Un lío de llaves  (Leído 1734 veces)

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

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Error de compilación - Un lío de llaves
« en: 01 de Marzo de 2014, 07:24:04 »
Estoy seguro que tiene que ser una gilipollez y de que lo tengo que tener delante de los ojos, pero no soy capaz de compilar este trozo de código.
Me aparecen estos errores:

Código: C
  1. TableTrafficLight.c(75): error:  #67: expected a "}"
  2.    {TodoRojo,           50,             {TodoRojo,      OVerde,                 SVerde,                 OVerde,                 WVerde,                 WVerde,                 WVerde,                 WVerde          }},
  3. TableTrafficLight.c(76): error:  #67: expected a "}"
  4.    {OVerde,                     50,             {OAmarillo,     OVerde,                 OAmarillo,      OAmarillo,      OAmarillo,      OAmarillo,      OAmarillo,      OAmarillo       }},
  5. TableTrafficLight.c(77): error:  #67: expected a "}"
  6.    {OAmarillo,  50,             {TodoRojo,      TodoRojo,               SVerde,                 SVerde,                 WVerde,                 WVerde,                 WVerde,                 WVerde          }},
  7. TableTrafficLight.c(78): error:  #67: expected a "}"
  8.    {SVerde,                     50,             {SAmarillo,     SAmarillo,      OVerde,                 SAmarillo,      SAmarillo,      SAmarillo,      SAmarillo,      SAmarillo       }},
  9. TableTrafficLight.c(79): error:  #67: expected a "}"
  10.    {SAmarillo,  50,             {TodoRojo,      OVerde,                 TodoRojo,               OVerde,                 WVerde,                 WVerde,                 WVerde,                 WVerde          }},
  11. TableTrafficLight.c(80): error:  #67: expected a "}"
  12.    {WVerde,                     50,             {DWflash1,      DWflash1,               DWflash1,               DWflash1,               WVerde,                 DWflash1,               DWflash1,               DWflash1        }},
  13. TableTrafficLight.c(81): error:  #67: expected a "}"
  14.    {DWflash1,           50,             {DWflash2,      DWflash2,               DWflash2,               DWflash2,               DWflash2,               DWflash2,               DWflash2,               DWflash2        }},
  15. TableTrafficLight.c(82): error:  #67: expected a "}"
  16.    {DWflash2,           50,             {DWflash3,      DWflash3,               DWflash3,               DWflash3,               DWflash3,               DWflash3,               DWflash3,               DWflash3        }},
  17. TableTrafficLight.c(83): error:  #67: expected a "}"
  18.    {DWflash3,           50,             {DWflash4,      DWflash4,               DWflash4,               DWflash4,               DWflash4,               DWflash4,               DWflash4,               DWflash4        }},
  19. TableTrafficLight.c(84): error:  #67: expected a "}"
  20.    {DWflash4,           50,             {TodoRojo,      TodoRojo,               TodoRojo,               TodoRojo,               TodoRojo,               TodoRojo,               TodoRojo,               TodoRojo        }},
  21. TableTrafficLight.c(125): error:  #65: expected a ";"
  22.         S = TodoRojo;


Este es el código:
Código: C
  1. typedef const struct sEstado {
  2.   unsigned long Salidas;
  3.   unsigned long Tiempo;  
  4.   unsigned long Siguiente[8];} tEstado;
  5.  
  6.  
  7. #define TodoRojo                0B01100100
  8. #define OVerde                  0B01001100
  9. #define OAmarillo               0B01010100
  10. #define SVerde                  0B01100001
  11. #define SAmarillo               0B01100001
  12. #define WVerde                  0B10100100
  13. #define DWflash1                0B01100100
  14. #define DWflash2                0B00100100
  15. #define DWflash3                0B01100100
  16. #define DWflash4                0B00100100
  17.        
  18. tEstado FSM[10]={
  19.  {TodoRojo,             50,             {TodoRojo,      OVerde,                 SVerde,                 OVerde,                 WVerde,                 WVerde,                 WVerde,                 WVerde          }},
  20.  {OVerde,                       50,             {OAmarillo,     OVerde,                 OAmarillo,      OAmarillo,      OAmarillo,      OAmarillo,      OAmarillo,      OAmarillo       }},
  21.  {OAmarillo,    50,             {TodoRojo,      TodoRojo,               SVerde,                 SVerde,                 WVerde,                 WVerde,                 WVerde,                 WVerde          }},
  22.  {SVerde,                       50,             {SAmarillo,     SAmarillo,      OVerde,                 SAmarillo,      SAmarillo,      SAmarillo,      SAmarillo,      SAmarillo       }},
  23.  {SAmarillo,    50,             {TodoRojo,      OVerde,                 TodoRojo,               OVerde,                 WVerde,                 WVerde,                 WVerde,                 WVerde          }},
  24.  {WVerde,                       50,             {DWflash1,      DWflash1,               DWflash1,               DWflash1,               WVerde,                 DWflash1,               DWflash1,               DWflash1        }},
  25.  {DWflash1,             50,             {DWflash2,      DWflash2,               DWflash2,               DWflash2,               DWflash2,               DWflash2,               DWflash2,               DWflash2        }},
  26.  {DWflash2,             50,             {DWflash3,      DWflash3,               DWflash3,               DWflash3,               DWflash3,               DWflash3,               DWflash3,               DWflash3        }},
  27.  {DWflash3,             50,             {DWflash4,      DWflash4,               DWflash4,               DWflash4,               DWflash4,               DWflash4,               DWflash4,               DWflash4        }},
  28.  {DWflash4,             50,             {TodoRojo,      TodoRojo,               TodoRojo,               TodoRojo,               TodoRojo,               TodoRojo,               TodoRojo,               TodoRojo        }},
  29. };

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: Error de compilación - Un lío de llaves
« Respuesta #1 en: 01 de Marzo de 2014, 12:31:46 »
Bueno, yo me lo guiso y yo me lo como.
Resultó que los "defines" no estaban bien escritos en notación binaria. Los he puesto en hexadecimal y ya compila sin errores ;)

Código: C
  1. #define TodoRojo                0x64
  2. #define OVerde                  0x4C
  3. #define OAmarillo               0x54
  4. #define SVerde                  0x61
  5. #define SAmarillo               0x62
  6. #define WVerde                  0xA4
  7. #define DWflash1                0x64
  8. #define DWflash2                0x24
  9. #define DWflash3                0x64
  10. #define DWflash4                0x24