Programación Específica > Microcontroladores
Problemas Con El Timer
Ian...:
Guenas .....hace poco empece un programa en donde necesito tomar pulsos externos y a la salida generar dos pulsos con el mismo ancho del pulso q me fue ingresado.el problema es q deben estar defasados entre si 90° uno respecto del otro. Otro inconveniente q se me genera es q los pulsos recividos son variables osea q voy a tener q estar constantemente testeando los impulsos.
Lo unico q se me ocurrio es poner registro vinculados con la entrada del dato para obtener el tiempo total del pulso pero nose como podria llegar a calcular los 90° para poder generar el defasaje de la señal.
desde ya como siempre estoy muy agradecido con las personas q me puedan ayudar!!!
saludos
Ian...
Pd: Me olvidaba decirles q programo en ASM y se muy poco en C
Alternative:
Saludos...
mira te recomiendo que utilices dos tablas
uno que te dara el valor del periodo normal y el otro que te dara
el valor a cargar al TMR0 con su respectivo defasamiento.
Bueno, haber si me explico, te recomiendo que lo realices con TMR0
el valor capturado (entrada) se debe comparar para saber a que valor
le corresponde en la tabla 1, y en la tabla dos en su misma direccion
debe tener el valor del defasamiento entre ellos, ya lo he echo nadamas
que con otros valores de defasamiento.
Saludos
bye
Alternative:
Saludos
Oyes nose si tendas el libro
RA-MA Editorial: Microcontrolador PIC16F84. Desarrollo de proyectos.
necesito que si lo tienes me puedas ayudar scaneando los capitulos
Capítulo 21: BUS I2C
21.1 El bus I2C
21.2 Hardware del bus I2C
21.3 Transferencia de un bit por la línea SDA
21.4 Condiciones de START y STOP
21.5 Transferencia de datos
21.6 Formato de una transferencia de datos
21.7 Tipos de formatos de transferencia
21.8 Temporización
21.9 Conexión de bus I2C a un PIC16F84
21.10 Librería de subrutinas para bus I2C
21.11 Dispositivos I2C
Gracias
Saludos
mi correo es
pmluis@gmail.com
Huguen_aus_Tirol:
Hola Ian! Bueno, según lo que entiendo de tu problema, creo que sería conveniente usar un micro con modulo CCP, configurado en modo de captura; con esto mides el ancho del pulso.
Que estén desfasados 90º significa que el segundo pulso comienza justo a la mitad del tiempo del primero, si no me equivoco :) . Es decir, el valor medido lo divides por 2 (rotas una vez este valor a la derecha ;) ); generas tu primer pulso (en fase), esperas este tiempo calculado, y generas el pulso desfasado.
Se me ocurre usar el modulo CCP porque creo que es lo más rápido. En este caso tienes ocupado el timer1 para la captura, asi que tendrás que usar el timer0 para generar tu pulso. Es lo que se me viene a la cabeza en este momento... puede que haya otra solución...
Bueno, que micro? Puede ser el 16F627/8.
Saludos!
Alternative:
SAludos
Es una buena alternativa como dice Huguen_aus_Tirol, pero quiero corregirlo, un periodo completo tienen 2PI y el defasamiento de 90grados que quieres Ian.. es de PI/2 asi que no es lamitad, sino 1/4 del periodo de la entrada
SAludos.
:hola:
Navegación
[#] Página Siguiente
Ir a la versión completa