Autor Tema: PROBLEMA CON COMPILADOR CCS  (Leído 1301 veces)

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

Desconectado GAWAIN

  • PIC10
  • *
  • Mensajes: 2
PROBLEMA CON COMPILADOR CCS
« en: 26 de Abril de 2015, 22:03:20 »
Buenas Noches a todos:

Acudo a Uds. porque tengo el siguiente problema que no he podido resolver:

Estuve desarrollando con un compañero un software en Lenguaje C, el mismo lo usamos para programar un Pic 18F2520 con oscilador de 4 MHz. Dicho programa lo terminamos y compilamos en su PC sin problemas. Sin embargo, ahora estamos tratando de compilarlo con el CCS en mi PC (ya que la suya tiene problemas) y nos sale una gran cantidad de errores, los cuales no se generaban en la PC de mi amigo. Los errores que muestra el compilador son los siguientes:

***Error 51 "ALARMA GSM.c" Line 29 (4,7): A numeric expression must appear here

***Error 51 "ALARMA GSM.c" Line 31 (14,17): A numeric expression must appear here

***Error 51 "ALARMA GSM.c" Line 33 (4,7): A numeric expression must appear here

Este error se repite y observo que espara toda la declaracion de variables.

Tambien aparece una vez:

***Error 76 "ALARMA GSM.c" Line 46 (77,78): A numeric expression must appear here

Otro error que se repite es:

***Error 12 "ALARMA GSM.c" Line 70 (12,13): A numeric expression must appear here

A continuacion les presento el texto del programa:

Código: CSS
  1. //CONFIGURACION DE PUERTO SERIAL
  2. #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)//9600
  3.  
  4.  
  5. //DECLARACION DE VARIABLES  
  6.    int ret=500,ret_alrm=400;//200:1min
  7.  
  8. **********   int ret_env=8000;//RETARDO DE ENVIO 1000=1S
  9.  
  10.    int f1=0,f2=0,f3=0,f4=0,f5=0,f6=0;//BANDERAS DE ALARMAS
  11.    int16 uptime,retardo1,retardo2;//CONTADORES DE TIEMPO
  12.    int e,n,cap=0,fn,lf=0,lfe,in=0,ie=0,ip=0,inr=0,sms=0,posi=0,hist=0,seg=0,min=0,rep;//OTRAS VARIABLES
  13.    int alrm1=pin_C0,alrm2=pin_C1,alrm3=pin_C2,alrm4=pin_C3,alrm5=pin_C4,alrm6=pin_C5,s1=pin_A4,s2=pin_A5;//PINES DE ENTRADA
  14.    int ca1=0,ca2=0,ca3=0,ca4=0,ca5=0,ca6=0;//CONTADORES DE ALARMA
  15.    int pwr=pin_B0,led_senal=pin_B7,salida1=pin_A0,salida2=pin_A2,alarm_salida1=0,alarm_salida2=0,record=0,alrmH,alrmT;//PINES DE SALIDA
  16.    int const nros=12;//NRO MAXIMO DE CONTACTOS A LEER EN SIM
  17.    int const etqs=7;//NRO MAXIMO DE SMS DE ETIQUETAS A LEER EN SIM
  18.    char c,l;//VARIABLES PARA CARACTER DE ENTRADA Y CODIGO DE SMS ENTRANTE RESPECTIVAMENTE
  19.    char ctrlz=26;//combinacion de teclas "ctrl+z"
  20.    char pos[2];//POSICION DEL SMS ENTTRANTE
  21.    char intentos[2];//INTENTOS DE ENCENDIDO ANTES DE BLOQUEAR LUEGO DE NO DETECTAR PRESENCIA DE MODULO GSM
  22.    char NUM[nros][14];//MATRIX DE PARA ALMACENAR CONTACTOS
  23.    char ETQ[etqs][21]={"_s/nombre", "_a1", "_a2", "_a3", "_a4", "_a5", "_a6"};//MATRIX PARA LAS ETIQUETAS
  24.    char NREM[14];//PARA ALMACENAR TEMPORALMENTE EL NRO DE REMITENTE
  25.    void mensaje_etqX_listcontactos (unsigned int etiq,unsigned int cnd);
  26.    void fcn_int_rda (void);
  27.    void reset(unsigned int x);
  28.    void capturar (void);
  29.    void ext_nros (void);
  30.    void ext_etqs (void);
  31.    void inic_nrem (void);
  32.    void inic_nrem (void);
  33.    void enviar_reporte (unsigned int x);
  34.    void check_sal(void);
  35.    unsigned int ident_nrem (void);
  36.  
  37.    void leer_nvosms (unsigned int x);
  38.    
  39.    void mensaje_etqX_listcontactos (unsigned int etiq,unsigned int cnd);
  40.    void capturar (void);
  41.    void encender_modem (void);
  42.    void config_modem (void);
  43.  
  44.  
  45. //AUTO RESET  
  46. void reset(unsigned int x){
  47.    switch (x){
  48.    case 0:
  49.    reset_cpu();  
  50.    case 1:
  51.    write_eeprom(0x00,'1');reset_cpu();
  52.    }
  53.    }
  54.    
  55.  
  56.  
  57. //BUCLE DE ESPERA DE CAPTURA  
  58. void capturar(void)
  59. {
  60.  
  61. while(cap==0){}
  62.  
  63. delay_ms(ret_env);
  64.  
  65. }
  66.    
  67. //FUNCION DE BLOQUEO  
  68. void bloqueo(unsigned int x)
  69. {
  70. switch (x)
  71. {
  72. case 1:
  73.       while(true){output_high (led_senal);delay_ms(150);output_low (led_senal);delay_ms(2000);}
  74.      
  75. case 2:
  76.       while(true){output_high (led_senal);delay_ms(150);output_low (led_senal);delay_ms(150);output_high (led_senal);delay_ms(150);output_low (led_senal);delay_ms(2000);}
  77.      
  78. }
  79. }
  80.  
  81.  
  82. //FUNCION DE CAPTURA DINAMICA POR PUERTO SERIAL
  83. void fcn_int_rda(void)
  84. {
  85.    
  86.    c=0x00;
  87.    if (kbhit () )
  88.    {
  89.       c=getc ();
  90.      
  91.       switch (fn)
  92.       {
  93.          case 0: if (c=='+')
  94.             fn=5;
  95.          
  96.          break;
  97.          
  98.          
  99.          case 1: if (c==('K' || 'R'))
  100.          {
  101.             NUM[n-1][0]=NULL;
  102.             lfe=1;
  103.             fn=100;
  104.          }
  105.          if (c==',')
  106.             fn=2;
  107.          
  108.          break;
  109.          
  110.          case 2:
  111.          if (c!=',')NUM[n-1][in++]=c;
  112.          else
  113.          {
  114.             NUM[n-1][in++]=NULL;
  115.             in=0;
  116.             lfe=3;
  117.             fn=100;
  118.          }
  119.          break;
  120.          case 3:
  121.          if (c=='\n')
  122.             lf++;
  123.          if (lf==2)
  124.          {
  125.             lf=0;
  126.             fn=4;
  127.          }
  128.          
  129.          if (c==('K' || 'R'))
  130.          {
  131.             lf=0;
  132.             lfe=1;
  133.             fn=100;
  134.          }
  135.          
  136.          break;
  137.          
  138.          case 4:
  139.          if (c!='\r')ETQ[e-1][ie++]=c;
  140.          else
  141.          {
  142.             ETQ[e-1][ie++]=NULL;
  143.             ie=0;
  144.             lfe=3;
  145.             fn=100;
  146.          }
  147.          break;
  148.          
  149.          case 5:
  150.          if (c==',')fn=6;
  151.          
  152.          break;
  153.          case 6:
  154.          if (c!='\r')pos[ip++]=c;
  155.          else
  156.          {
  157.             pos[ip++]=NULL;
  158.             sms=1;
  159.             fn=99;
  160.          }
  161.          break;
  162.          case 7:
  163.          if (c==',')fn=12;
  164.          
  165.          if (c==('K' || 'R'))
  166.          {
  167.           lfe=1;
  168.           fn=100;
  169.          }
  170.          
  171.          /*
  172.          if (c=='R')
  173.          {
  174.          if(err<4)
  175.          {
  176.             err++;
  177.             lfe=1;
  178.             fn=101;
  179.          }
  180.          }
  181.          */
  182.          break;
  183.          
  184.          case 12: if (c=='2'||c=='4')
  185.             {
  186.             NREM[inr++]=0x22;
  187.             NREM[inr++]='0';
  188.             NREM[inr++]=c;
  189.             fn=8;
  190.             }
  191.          break;
  192.          
  193.          case 8: if (c!=',')
  194.             NREM[inr++]=c;
  195.          else
  196.          {
  197.             NREM[inr++]=NULL;
  198.             fn=9;
  199.          }
  200.          break;
  201.          case 9: if (c=='\n')
  202.             fn=10;
  203.          
  204.          break;
  205.          
  206.          case 10: if (c!='\r')
  207.          {
  208.             l=c;
  209.          }
  210.          else
  211.          {
  212.             lfe=3;
  213.             fn=100;
  214.          }
  215.          break;
  216.          case 11:
  217.          if (c=='+')
  218.          {
  219.             lfe=3;
  220.             fn=100;
  221.          }
  222.          
  223.          if (c=='R')
  224.          {
  225.             lfe=1;
  226.             fn=100;
  227.          
  228.          /*if(err<3)
  229.          {
  230.             err++;
  231.             lfe=1;
  232.             fn=101;
  233.          }
  234.          else{
  235.             err=0;
  236.             lfe=1;
  237.             fn=100;
  238.              }*/
  239.          }
  240.          break;
  241.          
  242.          case 20: if (c=='K')
  243.          {
  244.             lfe=1;
  245.             fn=100;
  246.          }
  247.                  
  248.          break;
  249.          case 100: if (c=='\n')
  250.             lf++;
  251.          if (lf==lfe)
  252.          {
  253.             lf=0;
  254.             lfe=0;
  255.             fn=99;
  256.             cap=1;
  257.          }
  258.          
  259.          break;
  260.          
  261.          case 101: if (c=='\n')
  262.             lf++;
  263.          if (lf==lfe)
  264.          {
  265.             lf=0;
  266.             lfe=0;
  267.             fn=99;
  268.             cap=2;
  269.          }
  270.          
  271.          break;
  272.          
  273.          default: c=0x00;
  274.          
  275.          break;
  276.       }
  277.    }
  278. }
  279.  
  280. //INTERRUPCION DE CAPTURA DE CARACTERES POR RX DE PUERTO SERIAL
  281. #int_rda
  282. void serial_isr()
  283. {
  284.    fcn_int_rda () ;
  285. }
  286.  
  287. ///////////////////////////////////////////////////
  288.  
  289. //INTERRUPCION DE TIEMPO REAL
  290. #int_RTCC
  291. void RTCC_isr(void)
  292. {
  293.    retardo1++;
  294.    retardo2++;
  295.    uptime++;
  296.    if (uptime==120){uptime=0; seg++; }
  297.    if (seg==60){min++; seg=0; }
  298. }
  299.  
  300. //FUNCION PARA EXTRAER NROS DESDE LA SIM
  301. void ext_nros(void)
  302. {
  303.    int x=0;
  304.    n=0;
  305.    while (x==0&&n<nros)
  306.    {
  307.       fn=1;
  308.       n++;
  309.       printf ("AT+CPBR=%u\r\n",n);
  310.       //while (cap==0){}
  311.       //cap=0;
  312.       capturar();
  313.       if (NUM[0][0]== NULL)bloqueo(2);
  314.       if (NUM[n-1][0]== NULL)
  315.       {
  316.          n--;
  317.          x=1;
  318.       }
  319.       delay_ms (ret);
  320.    }
  321. }
  322.  
  323. //FUNCION PARA EXTRAER SMS DE ETIQUETAS DESDE LA SIM
  324. void ext_etqs(void)
  325. {
  326.    int x=0;
  327.    e=0;
  328.    while (x==0 && e<etqs)
  329.    {
  330.       fn=3;
  331.       e++;
  332.       printf ("AT+CMGR=%u\r\n",e);
  333.       capturar();
  334.       if (ETQ[e-1][0]=='_')
  335.       {
  336.          if(e>1)e--;
  337.          x=1;
  338.       }
  339.       delay_ms (ret);
  340.    }alrmH=e-1;alrmT=etqs-1;
  341. }
  342.  
  343.  
  344. //FUNCION PARA LIMPIAR VECTOR DE ALMACENAMIENTO DE NRO DE REMITENTE
  345. void inic_nrem(void)
  346. {
  347.    for (int i=0; i<=13; i++)
  348.    {
  349.  
  350.       NREM[i]=0x00;
  351.    }
  352.    inr=0x00;
  353. }
  354. void inic_pos(void)
  355. {
  356.    pos[0]=0;
  357.    pos[1]=0;
  358.    ip=0;
  359.    posi=0;
  360. }
  361.  
  362. //FUNCION PARA ENVIO DE SMS DE REPORTES
  363. void enviar_reporte(unsigned int x)
  364. {
  365.    
  366.    printf ("AT+CNMI=0\r\n");
  367.    delay_ms (ret);
  368.  
  369.    if (x==0)
  370.    {
  371.       for (int M=0; M<n; M++)
  372.       {
  373.      
  374.          printf ("AT+CMGS=%s\r\n",NUM[M]);
  375.          delay_ms (ret);
  376.          printf ("SMS ALRM EFRARB V1.7\r\n");
  377.          printf ("\r\nESTACION: %s\r\n",ETQ[0]);
  378.          printf ("Alarmas: %u/%u\r\nContactos: %u/%u\r\n",alrmH,alrmT,n,nros);
  379.          printf ("\r\nCOMANDOS ACEPTADOS:\r\nI: Info\r\nR: Reporte\r\n1: PulsoSalida1\r\n2: PulsoSalida2%c\r\n",ctrlz);
  380.          //printf ("%c\r\n",ctrlz);
  381.  
  382.          fn=11;
  383.          capturar();
  384.          delay_ms (ret);
  385.       }
  386.    }
  387.  
  388.    if (x==3)
  389.    {    
  390.    
  391.          printf ("AT+CMGS=%s\r\n",NREM);
  392.          delay_ms (ret);
  393.          printf ("SMS ALRM EFRARB V1.7\r\n");
  394.          printf ("\r\nESTACION: %s\r\n",ETQ[0]);
  395.          printf ("Alarmas: %u/%u\r\nContactos: %u/%u\r\n",alrmH,alrmT,n,nros);
  396.          printf ("\r\nCOMANDOS ACEPTADOS:\r\nI: Info\r\nR: Reporte\r\n1: PulsoSalida1\r\n2: PulsoSalida2%c\r\n",ctrlz);
  397.          //printf ("%c\r\n",ctrlz);
  398.  
  399.          fn=11;
  400.          capturar();
  401.          delay_ms (ret);
  402.    }
  403.  
  404.  
  405.    if (f1==0&&f2==0&&f3==0&&f4==0&&f5==0&&f6==0)
  406.    {
  407.      
  408.       if (x==1)
  409.       {
  410.      
  411.          printf ("AT+CMGS=%s\r\n",NREM);
  412.          delay_ms (ret);
  413.          printf ("Reporte General:\r\n\r\nTOTAL_ALARMAS=0%c\r\n",ctrlz);
  414.  
  415.          fn=11;
  416.          capturar();
  417.          delay_ms (ret);
  418.       }
  419.       if (x==2)
  420.       {
  421.          for (int M=0; M<n; M++)
  422.          {
  423.          
  424.             printf ("AT+CMGS=%s\r\n",NUM[M]);
  425.             delay_ms (ret);
  426.             printf ("Reporte General:\r\n\r\nTOTAL_ALARMAS=0%c\r\n",ctrlz);
  427.  
  428.             fn=11;
  429.  
  430.             capturar();
  431.  
  432.    
  433.             delay_ms (ret);
  434.          }
  435.       }
  436.    }
  437.    
  438.    else
  439.    {
  440.       if (x==1)
  441.       {
  442.      
  443.             printf ("AT+CMGS=%s\r\n",NREM);
  444.             delay_ms (ret);
  445.             printf ("Reporte General:\r\n\r\n");
  446.             printf ("%s=%u\r\n%s=%u\r\n%s=%u\r\n",ETQ[1],f1,ETQ[2],f2,ETQ[3],f3);
  447.             printf ("%s=%u\r\n%s=%u\r\n%s=%u%c\r\n",ETQ[4],f4,ETQ[5],f5,ETQ[6],f6,ctrlz);
  448.             //printf ("%c\r\n",ctrlz);
  449.  
  450.             fn=11;
  451.             capturar();
  452.  
  453.  
  454.             delay_ms (ret);
  455.       }
  456.       if (x==2)
  457.       {
  458.          for (int M=0; M<n; M++)
  459.          {
  460.             printf ("AT+CMGS=%s\r\n",NUM[M]);
  461.             delay_ms (ret);
  462.             printf ("Reporte General:\r\n\r\n");            
  463.             printf ("%s=%u\r\n%s=%u\r\n%s=%u\r\n",ETQ[1],f1,ETQ[2],f2,ETQ[3],f3);
  464.             printf ("%s=%u\r\n%s=%u\r\n%s=%u%c\r\n",ETQ[4],f4,ETQ[5],f5,ETQ[6],f6,ctrlz);
  465.             //printf ("%c\r\n",ctrlz);
  466.            
  467.             fn=11;
  468.        
  469.             capturar();
  470.  
  471.             delay_ms (ret);
  472.          }
  473.       }
  474.    }
  475.  
  476.    delay_ms (ret);
  477.  
  478.    
  479. }
  480.  
  481.  
  482. //FUNCION PARA IDENTIFICAR REMITENTE
  483. unsigned int ident_nrem(void)
  484. {
  485.    int cmp,res=0,k=0,j=0;
  486.    while (res==0)
  487.    {
  488.       if (NREM[k]==NUM[j][k])
  489.       {
  490.          if (k==12)
  491.          {
  492.             cmp=1; res=1;
  493.          }
  494.          else k++;
  495.       }
  496.       else
  497.       {
  498.          if (j==n)
  499.          {
  500.             cmp=0; res=1;
  501.          }
  502.          else
  503.          {
  504.             k=0;
  505.             j++;
  506.          }
  507.       }
  508.    }return (cmp);
  509. }
  510.  
  511.  
  512. //FUNCION PARA CHEQUEAR EL ESTADO DE LAS SALIDAS
  513. void check_sal(void)
  514.    {
  515.          if (alarm_salida1==1&&retardo1>TE_SALIDA1)
  516.       {
  517.          output_low (salida1);
  518.          alarm_salida1=0;
  519.          if(record==0&&alarm_salida2==0)
  520.             disable_interrupts (int_RTCC);
  521.       }
  522.      
  523.      
  524.       if (alarm_salida2==1&&retardo2>TE_SALIDA2)
  525.       {
  526.          output_low (salida2);
  527.          alarm_salida2=0;
  528.          if(record==0&&alarm_salida1==0)
  529.             disable_interrupts (int_RTCC);
  530.       }
  531.  
  532.    }
  533.  
  534.  
  535. //FUNCION PARA PROCESAR LOS SMS ENTRANTES SEGUN LA VALIDEZ DEL REMITENTE
  536. void leer_nvosms (unsigned int x)
  537.    {
  538.  
  539.    
  540.    delay_ms (ret);
  541.    fn=7;
  542.    printf ("AT+CMGR=%u\r\n",x);
  543.  
  544.  
  545.    capturar();
  546.    delay_ms (ret);
  547.    
  548.    if (ident_nrem () ==1)
  549.    {
  550.       switch (l)
  551.       {
  552.  
  553.          case 0x49:
  554.          enviar_reporte (3);
  555.          
  556.          break;
  557.  
  558.          case 0x52:
  559.          enviar_reporte (1);
  560.          
  561.          break;
  562.          
  563.          case 0x31:
  564.          if(alarm_salida1==0)
  565.          {
  566.          setup_timer_0 (RTCC_INTERNAL|RTCC_DIV_32|RTCC_8_bit);
  567.          enable_interrupts (int_RTCC);
  568.          alarm_salida1=1;
  569.          retardo1=0;
  570.          output_high (salida1);
  571.          
  572.          for (int M=0; M<n; M++)
  573.          {
  574.            
  575.             printf ("AT+CMGS=%s\r\n",NUM[M]);
  576.             delay_ms (500);
  577.             printf ("Pulso SALIDA1 activado por:\r\n%s%c\r\n",NREM,ctrlz);
  578.             //printf ("%c\r\n",ctrlz);
  579.            
  580.             fn=11;
  581.             capturar();
  582.             delay_ms (ret);  
  583.             check_sal();
  584.            
  585.          }
  586.          }
  587.          break;
  588.          
  589.          case 0x32:
  590.          if(alarm_salida2==0)
  591.          {
  592.          setup_timer_0 (RTCC_INTERNAL|RTCC_DIV_32|RTCC_8_bit);
  593.          enable_interrupts (int_RTCC);
  594.          alarm_salida2=1;
  595.          retardo2=0;
  596.          output_high (salida2);
  597.          for (int M=0; M<n; M++)
  598.          {
  599.             printf ("AT+CMGS=%s\r\n",NUM[M]);
  600.             delay_ms (500);
  601.             printf ("Pulso SALIDA2 activado por:\r\n%s%c\r\n",NREM,ctrlz);
  602.             //printf ("%c\r\n",ctrlz);
  603.            
  604.             fn=11;
  605.             capturar();
  606.             delay_ms (ret);
  607.             check_sal();
  608.          
  609.          }
  610.          }
  611.          break;
  612.          
  613.          default:
  614.          break;
  615.       }
  616.    }
  617.    l=NULL;
  618.    inic_nrem ();
  619.    delay_ms (ret);
  620.    }
  621.  
  622.  
  623. //REPORTE INDIVIDUAL DE ACTIVACION O DESACTIVACION DE ENTRADA DE ALARMA A TODOS LOS CONTACTOS
  624. void mensaje_etqX_listcontactos(unsigned int etiq,unsigned int cnd)
  625. {
  626.    if (read_eeprom(0x00)!='1')//VERIFICO QUE NO VENGA DE UN AUTO RESET
  627.    {
  628.    printf ("AT+CNMI=0\r\n");
  629.    delay_ms (ret);
  630.  
  631.    for (int M=0; M<n; M++)
  632.    {
  633.       printf ("AT+CMGS=%s\r\n",NUM[M]);
  634.       delay_ms (ret);
  635.       printf ("%s",ETQ[etiq]);
  636.       if (cnd==1){printf ("=1"); }
  637.       if (cnd==0){printf ("=0"); }
  638.       printf ("%c\r\n",ctrlz);
  639.      
  640.       fn=11;
  641.       capturar();
  642.       delay_ms (ret);
  643.    }
  644.    
  645.    fn=0;
  646.    delay_ms (5000);
  647.    printf ("AT+CNMI=2\r\n");
  648.    }
  649. }
  650.  
  651. //FUNCION PARA ENCENDER MODULO
  652. void encender_modem(void)
  653. {
  654.    output_low (pwr) ;
  655.    delay_ms (1000) ;
  656.    output_high (pwr) ;
  657.    delay_ms (2000) ;
  658.    output_low (pwr) ;
  659.    delay_ms (8000) ;
  660.    int s=0;
  661.    fn=20;
  662.    printf ("AT\r\n");
  663.    while (cap==0)
  664.       {output_high (led_senal);
  665.       delay_ms(100);
  666.       s++;
  667.       if(s==50){bloqueo(1);}
  668.       }
  669.    cap=0;
  670.    //write_eeprom(0x01,NULL);
  671.    output_low (led_senal) ;
  672. }
  673.  
  674.  
  675. //COMANDO BASICOS DE CONFIGURACION
  676. void config_modem(void)
  677. {
  678.    printf ("AT+CMGF=1\r\n");
  679.    delay_ms (ret);
  680.    printf ("AT+CNMI=0\r\n");
  681.    delay_ms (ret);
  682.    printf ("AT+CSMP=17,167,0,1\r\n");
  683.    delay_ms (ret);
  684.    printf ("ATE0\r\n");
  685.    delay_ms (ret);
  686. }
  687.  
  688. //FUNCION PRINCIPAL
  689. void main(void)
  690. {
  691.    enable_interrupts (int_RDA);
  692.    enable_interrupts (GLOBAL);
  693.    
  694.  
  695.    encender_modem ();
  696.    config_modem ();
  697.    ext_nros ();
  698.    delay_ms (500);
  699.    ext_etqs ();
  700.    delay_ms (500);
  701.    for(int p=e+1;p<=15;p++)
  702.    {
  703.    printf ("AT+CMGD=%u\r\n",p);//PARA BORRAR LOS POSIBLES MENSAJES PRESENTES DE LA POSICION 8 EN ADELANTE
  704.    delay_ms (ret);
  705.    }
  706.    
  707.    if (read_eeprom(0x00)!='1')enviar_reporte (0);//ASI VERIFICO SI VENGO DE UN AUTO RESETEO
  708.    
  709.  
  710.    fn=0;
  711.    delay_ms(5000);
  712.    printf ("AT+CNMI=2\r\n");//ACTIVAR EL AVISO DE NVOS SMS ENTRANTES
  713.  
  714.    while (TRUE)
  715.    {
  716.       check_sal();//VERIFICO ESTADO DE SALIDAS      
  717.       output_toggle (led_senal);//LED DE SEÑAL QUE PARPADEA INDICANDO ESTADO DEL SMC
  718.       delay_ms (300);
  719.  
  720.       if (sms==1)//VERIFICO SI HAY NUEVOS SMS DE ENTRADA
  721.                 {
  722.          printf ("AT+CNMI=0\r\n");
  723.          posi=atoi (pos);
  724.          if (posi==e+1){leer_nvosms (posi);delay_ms (5000);printf ("AT+CMGD=%u\r\n",posi);}
  725.          if (posi>e+1){for(int q=e+1;q<=posi;q++){leer_nvosms (q);delay_ms (5000);printf ("AT+CMGD=%u\r\n",q);}}
  726.          inic_pos (); sms=0;fn=0;  delay_ms (5000);printf ("AT+CNMI=2\r\n");}
  727.  
  728.  
  729.          if (input (alrm1)==0&&f1==0)//ACTIVACION DE ALARMA 1
  730.          {  
  731.             ca1++;//RETARDO PARA EVITAR FALSAS ALARMAS
  732.                if(ca1==ret_alrm)
  733.                {
  734.                ca1=0;
  735.                f1=1;
  736.                mensaje_etqX_listcontactos (1,1);//MANDAR A ENVIAR ACTIVACION DE LA ETIQUETA 1
  737.                }
  738.          }
  739.  
  740.          if ((input (alrm1)==1&&f1==0)||(input (alrm1)==0&&f1==1))ca1=0;//DESACTIVACION DE ALARMA SIN CUMPLIRSE EL TIEMPO DE RETARDO
  741.  
  742.          if (input (alrm2)==0&&f2==0)
  743.          {  
  744.             ca2++;
  745.                if(ca2==ret_alrm)
  746.                {
  747.                ca2=0;
  748.                f2=1;
  749.                mensaje_etqX_listcontactos (2,1);
  750.                }
  751.          }
  752.          
  753.          if ((input (alrm2)==1&&f2==0)||(input (alrm2)==0&&f2==1))ca2=0;
  754.          
  755.          if (input (alrm3)==0&&f3==0)
  756.          {  
  757.             ca3++;
  758.                if(ca3==ret_alrm)
  759.                {
  760.                ca3=0;
  761.                f3=1;
  762.                mensaje_etqX_listcontactos (3,1);
  763.                }
  764.          }
  765.  
  766.          if ((input (alrm3)==1&&f3==0)||(input (alrm3)==0&&f3==1))ca3=0;
  767.  
  768.          if (input (alrm4)==0&&f4==0)
  769.          {  
  770.             ca4++;
  771.                if(ca4==ret_alrm)
  772.                {
  773.                ca4=0;
  774.                f4=1;
  775.                mensaje_etqX_listcontactos (4,1);
  776.                }
  777.          }
  778.        
  779.          if ((input (alrm4)==1&&f4==0)||(input (alrm4)==0&&f4==1))ca4=0;
  780.        
  781.          if (input (alrm5)==0&&f5==0)
  782.          {  
  783.             ca5++;
  784.                if(ca5==ret_alrm)
  785.                {
  786.                ca5=0;
  787.                f5=1;
  788.                mensaje_etqX_listcontactos (5,1);
  789.                }
  790.          }
  791.  
  792.          if ((input (alrm5)==1&&f5==0)||(input (alrm5)==0&&f5==1))ca5=0;
  793.  
  794.          if (input (alrm6)==0&&f6==0)
  795.          {  
  796.             ca6++;
  797.                if(ca6==ret_alrm)
  798.                {
  799.                ca6=0;
  800.                f6=1;
  801.                mensaje_etqX_listcontactos (6,1);
  802.                }
  803.          }
  804.  
  805.  
  806.      
  807.          if ((input (alrm6)==1&&f6==0)||(input (alrm6)==0&&f6==1))ca6=0;
  808.  
  809.  
  810.  
  811.  
  812. //////////////////////////////////////////////////////////////////////////////////
  813.  
  814.  
  815.  
  816.  
  817.  
  818.       if (f1==1||f2==1||f3==1||f4==1||f5==1||f6==1)//PARA INDICAR LA ACTIVACION DE CUALQUIER ALARMA PARA EL ENVIO DE REPORTES
  819.          hist=1;
  820.  
  821.  
  822. ////////////////////////////////////////////////////////DESACTIVACION DE ALARMAS
  823.  
  824.  
  825.       if (input (alrm1)==1&&f1==1)//
  826.       {  
  827.             ca1++;
  828.                if(ca1==ret_alrm)
  829.                {
  830.                ca1=0;
  831.                f1=0;
  832.                mensaje_etqX_listcontactos (1,0);//PARA ENVIAR AVISO DE DESACTIVACION DE ALARMA 1
  833.                }
  834.       }
  835.    
  836.       if (input (alrm2)==1&&f2==1)
  837.       {  
  838.             ca2++;
  839.                if(ca2==ret_alrm)
  840.                {
  841.                ca2=0;
  842.                f2=0;
  843.                mensaje_etqX_listcontactos (2,0);
  844.                }
  845.       }
  846.  
  847.       if (input (alrm3)==1&&f3==1)
  848.       {  
  849.             ca3++;
  850.                if(ca3==ret_alrm)
  851.                {
  852.                ca3=0;
  853.                f3=0;
  854.                mensaje_etqX_listcontactos (3,0);
  855.                }
  856.       }
  857.  
  858.       if (input (alrm4)==1&&f4==1)
  859.       {  
  860.             ca4++;
  861.                if(ca4==ret_alrm)
  862.                {
  863.                ca4=0;
  864.                f4=0;
  865.                mensaje_etqX_listcontactos (4,0);
  866.                }
  867.       }
  868.  
  869.       if (input (alrm5)==1&&f5==1)
  870.       {  
  871.             ca5++;
  872.                if(ca5==ret_alrm)
  873.                {
  874.                ca5=0;
  875.                f5=0;
  876.                mensaje_etqX_listcontactos (5,0);
  877.                }
  878.       }
  879.    
  880.       if (input (alrm6)==1&&f6==1)
  881.       {  
  882.             ca6++;
  883.                if(ca6==ret_alrm)
  884.                {
  885.                ca6=0;
  886.                f6=0;
  887.                mensaje_etqX_listcontactos (6,0);
  888.                }
  889.       }
  890.  
  891.  
  892.  
  893. ///////////////////ENVIO DE REPORTES AUTOMATICOS
  894.       if ( (input (s1)==0||input (s2)==0) && (f1==1||f2==1||f3==1||f4==1||f5==1||f6==1))
  895.       {
  896.          setup_timer_0 (RTCC_INTERNAL|RTCC_DIV_32|RTCC_8_bit);
  897.          enable_interrupts (int_RTCC);
  898.          
  899.          if (input (s1)==0&&input (s2)==1) rep=10;        
  900.          if (input (s1)==1&&input (s2)==0) rep=20;
  901.          if (input (s1)==0&&input (s2)==0) rep=30;
  902.             record=1;
  903.          if (min>=rep&&seg==0){enviar_reporte (2); seg=0; min=0;fn=0; delay_ms(5000); printf ("AT+CNMI=2\r\n");}
  904.       }
  905.  
  906.  
  907.       if (f1==0&&f2==0&&f3==0&&f4==0&&f5==0&&f6==0&&hist==1)
  908.       {
  909.       enviar_reporte (2);
  910.       hist=0;
  911.       fn=0;
  912.       delay_ms(5000);
  913.       printf ("AT+CNMI=2\r\n");
  914.       }
  915.        if ( (input (s1)==1&&input (s2)==1)|| (f1==0&&f2==0&&f3==0&&f4==0&&f5==0&&f6==0))
  916.       {
  917.       record=0;
  918.       uptime=0;seg=0; min=0;
  919.       if(alarm_salida1==0&&alarm_salida2==0)
  920.          disable_interrupts (int_RTCC);
  921.  
  922.       }
  923.    
  924. ///////////
  925.  
  926.  
  927.    if (read_eeprom(0x00)=='1')
  928.    {
  929.    enviar_reporte (2);fn=0;delay_ms(5000);printf ("AT+CNMI=2\r\n");write_eeprom(0x00,NULL);
  930.    }
  931.    }
  932. }

Mucho les agradecemos nos pudan ayudar. Asimismo, si alguian lo logra compilar agradeceriamos nos lo hicieran llegar.

Saludos,

GAWAIN

 
« Última modificación: 27 de Abril de 2015, 07:34:58 por un Moderador, Razón: Editado para añadir GeSHi »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: PROBLEMA CON COMPILADOR CCS
« Respuesta #1 en: 28 de Abril de 2015, 09:06:05 »
Sinceramente no entiendo por que da error. lo unico que veo es:

   void inic_nrem (void);
   void inic_nrem (void);

y que bloqueo() no esta definido.
nada mas.

Pero si decis que en la casa de tu compañero anda es por que seguro hay alguna otra configuracion que cambiar. pero si parece un error de CCS o se copio mal..
Por lo que vi por ahi algunos tienen problemas por un "}" faltante o cosas asi. Es bastante largo el codigo como para resolverlo :/, deberias haber movido un poco de funciones a una libreria u algo asi.

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: PROBLEMA CON COMPILADOR CCS
« Respuesta #2 en: 28 de Abril de 2015, 09:22:44 »


Prueba a comentar la linea 40.