TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: diegostreetbob en 27 de Junio de 2009, 12:09:46

Título: Ayuda, nuevo en C
Publicado por: diegostreetbob en 27 de Junio de 2009, 12:09:46
Hola compañeros, acabo de iniciarme con la programación en C, aunque anteriormente he trabajado con picbasic y me gustaria que alguien me explicara en este las lineas que no entiendo, es un contador de 0 a 99 con 2 displays 7seg de cátodo común,
No entiendo las lineas marcadas con asteriscos**********
#include <16F876.h>
#USE DELAY( CLOCK=4000000)
#FUSES XT,NOWDT,NOPROTECT,NOPUT
#USE fast_IO (B)
#USE fast_IO (A)
byte CONST DISPLAY[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//00111111,00000110,etc,,,etc,,,*********************
byte ud=0,dec=0;********************************ud y dec no estan definidas perviamente con ningu tipo de variable, no entiendo de donde salen
SET_TRIS_B(0x00);
SET_TRIS_A(0x00);
OUTPUT_B(0);
 for( ;; ){
   for (dec=0;dec<10;dec++){       //Cuenta digito decenas
      for (ud=0;ud<10;ud++){
         OUTPUT_A(0x02);           //cat_D=apagado,cat_U=encendido
         OUTPUT_B(DISPLAY[ud]);   //Digito unidades
         delay_ms(50);            //Para evitar parpadeos
         
         if (dec==0) output_a(0x03);     //Si decenas=0, cat_D=apagado
         else output_a(0x01);           //Si decenas>0, cat_D=encendido
                 
         OUTPUT_B(DISPLAY[dec]);      //Digito decenas
         delay_ms(50);               //Para evitar parpadeos
     }
   }
 }
}

Gracias a todos por vuestra ayuda
Título: Re: Ayuda, nuevo en C
Publicado por: Suky en 27 de Junio de 2009, 13:52:20
byte = int = 8 bits.
CONST DISPLAY[10], es un arreglo de 10 elementos.
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; es la definiciones de elementos.

Y bueno la siguiente, entendiendo byte ya esta...
Título: Re: Ayuda, nuevo en C
Publicado por: setshomaru en 27 de Junio de 2009, 15:28:47
byte ud=0,dec=0;********************************ud y dec no estan definidas perviamente con ningu tipo de variable, no entiendo de donde salen

esa es la definicion, se definen las variables ud y dec como byte (de 0 a 255) y se inicializan en cero ud=0 y dec=0 de lo contrario toman valores aleatorios
Título: Re: Ayuda, nuevo en C
Publicado por: japifer_22 en 28 de Junio de 2009, 03:29:15
hola bueno lo que hace essas lineas es: son numeros hexadesimales de el cual esta asociado a una matris byte CONST DISPLAY[10], mas abajo las define como salida, osea por ejemplo el primer dijito 0x3F equivale a 00111111 en binario y eso equivale a las salidas en alto o bajo del pic que en este caso la asigna al puerto B de este mismo, para poder asi visualizar un digito en el display, donde los 0 equivale a las salidas en alto del pic y los 1 equivalen a entradas. por lo tanto B6 y B7 esta configurado como salida y B0 a B5 como entradas, entonces por cada digito que quiera ver saca un valor de la matriz y lo mete al puerto B y se ve reflejado en el display.

a y  up + dec son dos variables que solo pueden tomar un valor o es = 0 ó 1 y nada mas por eso se define byte.

espero aver sido claro saludos
Título: Re: Ayuda, nuevo en C
Publicado por: japifer_22 en 28 de Junio de 2009, 03:37:52
hola de nuevo ley mal sorry:  byte ud=0,dec=0; Carga 8 bits en el segmento del área de datos del puerto B, con cada dirección del bit especificado