Autor Tema: Problema al recibir un tren de pulsos y interpretarlo  (Leído 974 veces)

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

Desconectado Murdco25

  • PIC10
  • *
  • Mensajes: 13
Problema al recibir un tren de pulsos y interpretarlo
« en: 13 de Mayo de 2013, 15:48:07 »
Problema al recibir un tren de pulsos y interpretarlo
Hola amigos no soy muy bueno programando peor me surgió un problema en un diseño que tengo mi problema es el siguiente: tengo un tren de pulsos infinito generado por un oscilador 555 el cual necesito meter a la entrada de un pic y necesito que cada ves que entre un 1 seguido por un cero la cadena siempre seria esta 10101010101010 por lo cual siempre será 1 y 0 cada vez que lea esto por el puerto B0 de mi pic 16f877a me lo interprete como un 1 lógico " mi entrada hacia el pic la entro con un foto diodo " por lo cual al ser bloqueado en algún momento de esta cadena 10101010101 puedo obtener al bloquear esta 101010000000001010 pro lo cual cuando detecte 00 me prenda un led avía hecho algo que muestro abajo peor con mi lógica nunca puedo obtener 0000.

Cuando este 1010101 siempre se mantenga apagado un led colocado en D0.
cuando este 1000010 siempre me mantenga encendido el led conectado en D0.

Nota. No necesariamente deben se cada 2 bits puede ser una cadena mayor 10 o 00.
mi 1 lógico y mi 0 lógico son de diferente frecuencia en ocasiones varia.

Mi Programa.





#include <16f877A.h>
#include <string.h>
#include <stdlib.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT
#use delay(clock=4000000)
#use standard_io(b)
#use standard_io(d)



int a=0;




void main()
{
while(true)
{
if(input(pin_B0)==0& input(pin_B1)==0&&a!=1)
{

output_high(pin_D0);
a=1;
}
if(input(pin_B0)==1& input(pin_B1)==1&&a==1)
{

output_low(pin_D0);
a=0;
}
}
}