Autor Tema: Retrasar dos señales  (Leído 2319 veces)

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

Desconectado Kid_Bengala

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 490
Retrasar dos señales
« en: 01 de Abril de 2008, 14:41:38 »
hola

tengo dos señales que salen de dos biestables y quiero retrasarla unos milisegundos antes de atacar otro integrado (motor paso a paso L293), que lo activare cuando se me habilite otra señal (sensor). Serian unos 200 bits a retrasar por señal, pero claro, no se va ha almacenar todo y luego sacarlo, mas bien como una memoria fifo, quiero que cuando le entren los bits los vaya almacenando hasta habilitar la otra señal (pueden ser 3 bits o asi), vacie el buffer y siga llenando y sacandolos. No se muy bien como hacerlo, me preguntaba si alguien puede echarme una manita, trabajo con css. ¿Alguna ayudita? jejeje :D

saludos de antonio  :-/

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
Re: Retrasar dos señales
« Respuesta #1 en: 01 de Abril de 2008, 15:57:54 »
Con 200 bits quiero pensar que te refieres a 200 cambios de estado. Si lo que quieres es muestrear la señal, primero deberas de saber la frecuencia a la que saldra la señal. Luego, lee el pin donde recibiras esa señal a 10 veces minimo esa frecuencia. Eso lo puedes hacer con un timer. Cuando entres en la interrupcion del timer,  seria algo asi:

variables globales:  bit_count=0, byte_count, MUESTRAS[256]   //  256*8=2048 muestras digitales

int_timer0:

temp=input(PIN_xx)
MUESTRAS[byte_count]<<1; //Movemos 1 a la izda.
MUESTRAS[byte_count]=MUESTRAS[byte_count]|temp; //Metemos temp

bit_count=bit_count+1;
if(bit_count=8)
{
bit_count=0;
byte_count=byte_count+1;
}

Luego, en el programa principal estaras esperando la señal del sensor. Cuando se active la señal del sensor:
-Desactivas la interrupcion del timer0
-Teniendo ya las variables byte_count y bit_count, haces el trabajo inverso, es decir, coges el bit, lo sacas por el puerto, mueves a la derecha (>>) el byte, sacas el bit por el puerto, bit_count=bit_count-1 ,  si bit_count=0 entonces byte_count=byte_count-1 y sucesivamente hasta que ambas variables sean cero.
- Cuando sean cero, activas la interrupcion y vuelta a empezar.


Ufa! Ya me ha costado escribir jajajj

Desconectado Kid_Bengala

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 490
Re: Retrasar dos señales
« Respuesta #2 en: 03 de Abril de 2008, 13:22:59 »
Hola

Acabo de capturar estas dos señales, cuando es un cero lo que manda (lo que simulando haciendo que solo mande ceros), los pulsos son mas anchos y cuando son un bit a 1 son mas estrechos (o mas bien se puede decir que manda mas pulsos en el mismo tiempo), ambos manda los mismos bit, lo unico que unos son mas amplios y otros mas estrechos. Tambien se puede ver como la segunda señal es la contraria de la primera.

La verdad que no se como abarcar esto, con lo sencillo que puede ser. A ver si me compro la fuente de laboratorio de una vez y empiezo a programar de nuevo PIC que entre lo poco que sabia y lo que me acuerdo vamos bien, y la verdad que me urge aprender para futuros desarrollos, porque este es como quien dice el primero despues de mucho tiempo y me urge mucho :(

A ver si alguien puede hacerme ver la luz y conseguir retrasar estas señales X ms, una vez activado un sensor.

muchas gracias

saludos
« Última modificación: 23 de Febrero de 2009, 15:08:49 por Kid_Bengala »

Desconectado Kid_Bengala

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 490
Re: Retrasar dos señales
« Respuesta #3 en: 07 de Abril de 2008, 10:30:26 »
Hola

me parece que esto lo vamos a olvidar que no se como abarcarlo jejejeje. Muchas gracias por la ayuda

saludos de antonio

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
Re: Retrasar dos señales
« Respuesta #4 en: 07 de Abril de 2008, 11:06:04 »
Miraste bien mi planteamiento? Nose, no parece tan descabellada mi idea. Pues nada! :D

salu2!

Desconectado Kid_Bengala

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 490
Re: Retrasar dos señales
« Respuesta #5 en: 07 de Abril de 2008, 13:04:17 »
Hola

jejeje, no se, la verdad que no tengo mucha idea si valdria, lo unico que de momento no me hace tanta falta entonces lo dejo para intentar otros proyectos algo mas simples, que esto creo que tendria que medir el tiempo del pulso en vez de solo los pulsos yahora mismo me encuentro aprendiendo C (me quede en ASM y casi no me acuerdo de nada porque deje bastante de lado la programacion). muchas gracias

saludos de antonio

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
Re: Retrasar dos señales
« Respuesta #6 en: 07 de Abril de 2008, 14:59:49 »
Okidoki. A darle duro al C! Pero no dejes a un lado ASM, pues para ciertas cosas es el arma perfecta. Yo estoy por darle un bocado.

salu2!

Desconectado Kid_Bengala

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 490
Re: Retrasar dos señales
« Respuesta #7 en: 08 de Abril de 2008, 13:25:30 »
El problema es que casi no me acuerdo de nada de ASM, tendre que ponerme de nuevo a refrescar conocimientos jejeje.

saludos de antonio


 

anything