hola que tal amigos,ando realizando un proyecto el cual consiste en un secuencial de luces con el pic16f84a.
las secuencias ya las tengo,el problema q tengo es q quisiera leer el tiempo que dura un pulso positivo (Ton) el cual entrega la salida de un circuito 555 y que va conectado a la pata RA4/TOCKI del pic16f84a.
a la salida del 555 la puedo variar ya que lleva un potenciometro de 100k,y por lo tanto los pulsos (Ton) se pueden disminuir o aumentar.
entonces me gustaria poder leer el tiempo que dura ese (Ton) y poder utilizarlo como retardo para encender y apagar los leds,es decir algo como esto:
en asembler
portb=0xff;
call retardo
portb=0x00;
en lenguaje c
portb=0b11111111;
delay_ms(X);
portb=0b00000000;
en donde "X" es el tiempo que dura el pulso (Ton), de esta manera se podra variar el tiempo con el cual se prenden y apagan los leds.
el programa q tengo es algo como esto:
#include <16f84a.h>
#use delay(clock=4000000)
#fuses xt,nowdt,noprotect
#byte porta=5
#byte portb=6
void main()
{
int x=100;
set_tris_b(0b00000000);
portb=0b00000000;
while(true)
{
if(porta==0b00000010)
{
portb=0b00000001;
delay_ms(x);
portb=0b00000010;
delay_ms(x);
portb=0b00000100;
delay_ms(x);
portb=0b00001000;
delay_ms(x);
portb=0b00010000;
delay_ms(x);
portb=0b00100000;
delay_ms(x);
portb=0b01000000;
delay_ms(x);
portb=0b10000000;
delay_ms(x);
portb=0b00000000;
}
}
}
aca utilizo dentro del delay_ms(x); a la "X" la cual esta declarada al principio como constante,pero me gustaria q variara,tal es el caso de la entrada del 555 a la pata RA4/TOCKI.
gracias de antemano por sus respuestas
PD:les dejo incluido el verdadero programa y el circuito.