Autor Tema: consulta sobre contador de 0000 a 9999 con pulsador  (Leído 2555 veces)

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

Desconectado rroque

  • PIC12
  • **
  • Mensajes: 68
consulta sobre contador de 0000 a 9999 con pulsador
« en: 09 de Abril de 2010, 19:44:31 »
Saludos, para empezar estoy haciendo un contador de 0000 a 9999, el valor ira incrementando cada vez que pulse el pin_a0, he estado revisando y dando vueltas pero el programa solo cuenta hasta 255 y reinicia de nuevo y cuando inicia el proceso el prime digito esta en uno. Les adjunto los archivos para que le den una mirada y me puedan guiar para poder corregir esto.

Gracias

pd.- no se fijen en el nombre del archivos es el correcto para manejarlo con displays XD

#include <16f88.h>                   
#fuses INTRC_IO,NOMCLR,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP     
#use delay (clock=4000000)         //Fosc=4Mhz
#use standard_io(B)
#use standard_io(A)


//Variables
int tabBCD[10]={0b0000,0b0001,0b0010,0b0011,0b0100,0b0101,0b0110,0b0111,0b1000,0b1001};
char conta=0;
int delay=5;
int h_digit,m_digit,l_digit,d_digit;
char a=0,b=0,c=0,d=0;

//Funciones

void vizu(void);
void ass(int valor);

//Programa

void main (void)
{
   output_b(tabBCD[ conta ]);
   while(1)
   {
      if(!input(PIN_A0))
      {
         ++conta;
         ass(conta);
         a=l_digit;
         b=m_digit;
         c=h_digit;
         d=d_digit;

         while(!input(PIN_A0))
         {
            vizu();
         }
      }
      vizu();
   }

}

//****************************************************
void vizu(void)
{
   
   output_b(tabBCD[d]|0b11100000); //0b11100000
   delay_ms(delay);
   output_b(tabBCD[c]|0b11010000); //0b11010000
   delay_ms(delay);
   output_b(tabBCD|0b10110000); //0b10110000
   delay_ms(delay);
   output_b(tabBCD[a]|0b01110000); //0b01110000
   delay_ms(delay);
}

//****************************************************

void ass(int valor=0)
{
   d_digit = (int) valor / 1000;
   valor-= d_digit*1000;
   h_digit = (int) valor / 100;
   valor-= h_digit*100;
   m_digit = (int) valor / 10;
   valor-= m_digit*10;
   l_digit = valor;
}
#

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: consulta sobre contador de 0000 a 9999 con pulsador
« Respuesta #1 en: 09 de Abril de 2010, 20:13:54 »
Hola paisa, esto es solo cuestion de declaracion de variables

Saludos  :)
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 rroque

  • PIC12
  • **
  • Mensajes: 68
Re: consulta sobre contador de 0000 a 9999 con pulsador
« Respuesta #2 en: 10 de Abril de 2010, 11:26:14 »
hola kallitos gracias por la respuesta como recien esto empezando con esto de los microcontroladores le dare una revisado al tema de variables.

Gracias


 

anything