Hola a todo .- Aprovecho para felicitarlo a todo por este mundo en la electronica.- ya que para mi "PIC" es palabra mayor .--
Mi problema estoy haciendo un contador 0000 a 9999 .- lo tengo funcionando pero no estoy entendiendo como hacer ya que quiero que me sume Ej: 12 + 12 + 12 + ... y visualizar en resultado en dysplay.- 7 seg.-
le paso el codigo para que me lo analicen .- ya que no se como encarar la suma el incremento lo hace trave de un pulsador por interupcion de cambio de estado.-
#include "16F628A.h" //Incluye el fichero de símbolos y etiquetas.
#use delay (clock=4000000) //Define la frecuencia del oscilador.
#fuses HS,NOWDT,NOPUT,NOBROWNOUT,NOLVP,NOPROTECT,NOCPD//Define palabra de conf. para la grabación del micro.
#use fixed_io(a_outputs=PIN_A0,PIN_A1,PIN_A2,PIN_A3)
#use fixed_io(b_outputs=PIN_B0,PIN_B1,PIN_B2,PIN_B3)
///VARIABLES GLOBALES
int di2=0,di1=0,di0=0,di3=0;
int16 var=0;
//LLAMADA FUNCION INTERRUPCION
#INT_RB
void cualquiercosa()
{
if(input(PIN_B4)) //se ingreso dato?
{
var++; //var aumenta 1.
if(var>=1) var=0,di3++; //var es mayor o igual a 1? si=>var=0 y di2 aumenta 1.
if(di3==10) di3=0,di2++;
if(di2==10) di2=0,di1++; //di2 es igual a 10? si=>di2=0 y di1 aumenta 1.
if(di1==10) di1=0,di0++; //di1 es igual a 10? si=>di1=0 y di0 aumenta 1.
if(di0==10) di0=0; //di0 es igual a 10? si=>di0=0.
}
}
///PROGRAMA
void main(void)
{
enable_interrupts(INT_RB); //Activa Interrupcion por Cambio de Estado de PIN
enable_interrupts(GLOBAL); //Habilita Interrupciones globales
while (true)
{ output_a(0); //Saca por el Puerto A el valor 0 (todos en low)
output_high(PIN_A3); //Habilita di2
output_b(di3); //Saca por el Puerto B el valor de di2
delay_ms(10); //retardo
output_a(0); //Saca por el Puerto A el valor 0 (todos en low)
output_high(PIN_A2); //Habilita di2
output_b(di2); //Saca por el Puerto B el valor de di2
delay_ms(10); //retardo
output_a(0);
output_high(PIN_A1); //Saca por el Puerto A el valor 0 (todos en low)
output_b(di1); //Saca por el Puerto B el valor de di1
delay_ms(10); //retardo
output_a(0);
output_high(PIN_A0); //Habilita di0
output_b(di0); //Saca por el Puerto B el valor de di0
delay_ms(10);
}
}
desde ya muchas gracias.-