TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: EduardQui en 02 de Agosto de 2021, 13:11:48

Título: Adelantar o atrasar una señal
Publicado por: EduardQui en 02 de Agosto de 2021, 13:11:48
Hola, quisiera saber como adelantar o atrasar una señal, estoy usando el PIC16F887, estoy creando un pequeño sistema de control, donde grabo y reproduzco, en realidad no grabo nada ni reproduzco nada, el objetivo es ver las señales de salida en un osciloscopio.

Uno de los puntos adelantar y atrasar una señal, pero no se como realizar ese proceso, alguien me puede ayudar?

Esto es lo que tengo de código.

#include <16f887.h>
#use fast_IO(c)
#use fast_IO(a)


void main(){
   set_tris_a(0xff);
   set_tris_c(0x00);

   while(true){
      output_c(0xf0);
      if(input(pin_a0)==0){
         while(input(pin_a6)!=1){
            output_c(0x20);
         }
      }
   if(input(pin_a1)==0){
      while(input(pin_a6)!=1){
         output_c(0x10);
      }
   }
   }
}


Título: Re:Adelantar o atrasar una señal
Publicado por: DominusDRR en 05 de Agosto de 2021, 10:17:04
¿A qué te refieres con adelantar y atrasar una señal?
Título: Re:Adelantar o atrasar una señal
Publicado por: Robert76 en 05 de Agosto de 2021, 12:25:27
Hola, hay que aclarar un detalle, sin entrar en ánimo de filosofar.
Una señal recibida jamás podría ser adelantada. Ya que no puedes recrear una señal antes de que sea recibida! Salvo que se conozca la periodicidad del evento y poder sincronizar con una señal local(PLL), pero es otro tema.
Más bien, siempre podrás atrasarla, una vez recibida.
Bueno, una forma de hacerlo es utilizar una interrupción que detecte cambio de estado en una entrada, luego disparar un timer, y luego de X tiempo, provocar un evento para producir la señal retrasada.
Título: Re:Adelantar o atrasar una señal
Publicado por: DominusDRR en 05 de Agosto de 2021, 12:31:15
Hola, hay que aclarar un detalle, sin entrar en ánimo de filosofar.
Una señal recibida jamás podría ser adelantada. Ya que no puedes recrear una señal antes de que sea recibida!
Más bien, siempre podrás atrasarla, una vez recibida.
Bueno, una forma de hacerlo es utilizar una interrupción que detecte cambio de estado en una entrada, luego disparar un timer, y luego de X tiempo, provocar un evento para producir la señal retrasada.

Gracias por la aclaración. Recuerdo que en una materia de la universidad denominada Señales y Sistemas se mencionaba tal sistema que podía adelantarse a una señal, lo denominaban predictor, obviamente sólo era teórico.