Autor Tema: problemas con el compilador ccs c  (Leído 2490 veces)

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

Desconectado japifer_22

  • PIC18
  • ****
  • Mensajes: 405
problemas con el compilador ccs c
« en: 27 de Mayo de 2008, 01:09:42 »
hola como estan bueno soy nuevo en el foro en el tema de el posteo siempre leo no mas pero en esta ocasion tengo una duda con respecto a el compilador de ccs c. les cuento estoy asiendo un contador de 0 a 99999 ,con una entrada para el contador que la denomine con el pin C0 ( esta entrada al contador resive una señal X pero de tecnologuia TTL) del pic y un reset general  C1, esto es visualisado mediante 5 display de 7 segmento. bueno mi duda es la siguiente cuando corri el programa por primera ves y lo pase a proteurs iva todo bien, asta que me di cuenta que la multiplexacion de los display de 7 seg estaba mas omenos mala y la quise cambiar, y a la hora de compilar de nuevo este no me deja y me lansa el siguiente error; i/o error 103, pero lo raro que volvi a dejar el programa como antes y = me lansa el error ya no se me ocurre que mas hacer para poder compilar si alguien me pudiera alludar por favor seria de gran utilidad, no esta de+ desir que e revisado el programa demasiadas vese pero en fin cuando uno programa derrepente no se da cuenta de sus propios errores por eso les dejo el programilla para que lo comentemos:


#include <16f876a.h> //pic a utilizar
#fuses XT,NOWDT,NOPROTECT,PUT,NOLVP //ordenes para el programador
#use delay (clock=4000000) //cristal=4Mhz
#use standard_io(B)// entrada y salida del puerto b estandar
#use fixed_io(A_outputs=PIN_A0,PIN_A1,PIN_A2,PIN_A3,PIN_A4)
#use fixed_io(C_intputs=PIN_C0,PIN_C1)
#use standard_io(C)// entrada y salida del puerto a estandar
void main() {       
   int b, a;
    int i = 0, j = 0, w = 0, z = 0, g = 0, h = 0;
   
while(TRUE){   
   int salida7seg[10] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x67}; //7seg hex 0-9
    do { 
      if(h< 11) { //¿se ha mostrado por 1º 7seg digito 9?   
          output_high(PIN_A0);
          output_high(PIN_A1);
          output_high(PIN_A2);
          output_high(PIN_A3);
          output_low(PIN_A4); //activado...
          output_B(salida7seg[h]);//...1º 7seg
          delay_ms(10);
          output_high(PIN_A0);
          output_high(PIN_A1);
          output_high(PIN_A2);
          output_low(PIN_A3);
          output_high(PIN_A4);
          output_B(salida7seg[j]); //...2º 7seg");
          delay_ms(10);
          output_high(PIN_A0);
          output_high(PIN_A1);
          output_low(PIN_A2);
          output_high(PIN_A3);
          output_high(PIN_A4);
          output_B(salida7seg[w]); //...3º 7seg
          delay_ms(10);
          output_high(PIN_A0);
          output_low(PIN_A1);
          output_high(PIN_A2);
          output_high(PIN_A3);
          output_high(PIN_A4); 
          output_B(salida7seg[z]); //...4º 7seg
          delay_ms(10);
          output_low(PIN_A0);
          output_high(PIN_A1);
          output_high(PIN_A2);
          output_high(PIN_A3);
          output_high(PIN_A4);
          output_B(salida7seg[g]); //...5º 7seg
          delay_ms(10);
         
         if (h > 8){
            h =- 1;
            j++;
         }
            if(j > 9){ //¿se ha mostrado por 2º 7seg digito 9?
            j = 0; //SI -> j=0 (muestra digito 0)
            w++; //incremento indice w
            if(w > 9) { //¿se ha mostrado por 3º 7seg digito 9?
               w = 0; //SI -> w=0 (muestra digito 0)
               z++; //incremento indice z
               if(z > 9){ //¿se ha mostrado por 4º 7seg digito 9?
                  z = 0;
                  g++; //SI -> z=0 (muestra digito 0)
                  if(g > 9){ //¿se ha mostrado por 3º 7seg digito 9?
                     g = 0; //SI -> g=0 (muestra digito 0)
                  }
               }
            }
         } else {
            a = 0;
           
             if(input(PIN_C0)) {
             b=1;
            }                         
            if(input(PIN_C1)) {
               i=0;j=0;w=0;z=0;g=0; h=0;
               
             
            }
            if (a == 0) {
               break;
            }
            h = h + b;
         }
      }
   } while(TRUE);
}
}/* indica el termino del programa*/


a y lo otro si se les pudiese hacer un par de mejoras me las comentan = plissss nunca esta demas un buen consejo XD
saludos nos vemos.
 

Desconectado japifer_22

  • PIC18
  • ****
  • Mensajes: 405
Re: problemas con el compilador ccs c
« Respuesta #1 en: 27 de Mayo de 2008, 01:58:08 »
hola denuevo pude solucionar el problema del compilador pero ahora tengo otro proplema con los donplay en el tercer display el proteurs me arroja un error me alludan plisss ahora si que no se por que pasa eso grax

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: problemas con el compilador ccs c
« Respuesta #2 en: 27 de Mayo de 2008, 08:39:47 »
Una recomendacion, y es lo que hago normalmente para evitar este tipo de problemas, cuando programo siempre hago un original y una copia y es en esta ultima donde realizo los cambios, es decir, cada vez que voy avanzando y veo que funciona bien guardo y en caso de que no funcione regreso a la ultima copia que funciona.

Con respecto al display chekea bien tu codigo, en todo caso subelo para que se pueda determinar donde esta el error.
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: problemas con el compilador ccs c
« Respuesta #3 en: 27 de Mayo de 2008, 10:58:55 »
Hola.

Para el manejo de los display en proteus hay que respetar los tiempos de refresco ( creo que minimo es 1mS ). Hice una rutina para manejar esos display con interrupciones del Timer0, para volverlo mas eficiente y no tener problema con las funciones del main y el tiempo de refresco de los displays. Mira AQUI, la unica variacion seria colocar dos display de mas para que tengas los cuatro.

Saludos.
El papel lo aguanta todo

Desconectado japifer_22

  • PIC18
  • ****
  • Mensajes: 405
Re: problemas con el compilador ccs c
« Respuesta #4 en: 27 de Mayo de 2008, 14:23:54 »
hola grax por las sujerencias al pareser claro tengo problema con multiplexar los display si me pueden alludar con esto plisss , sorri iva a subir el programa pero no se como suibirlo pero lo pueden copiar desde el foro XD si es que no es gran molestia


 

anything