SoloCodigo

Programación Específica => Microcontroladores => Programación en C => Mensaje iniciado por: infrarrojo en Jueves 8 de Febrero de 2007, 11:41

Título: Modulación De Un Pulso
Publicado por: infrarrojo en Jueves 8 de Febrero de 2007, 11:41
Hola a todos. Estoy diseñando un programa en C que emule el funcionamiento de un mando a distancia por infrarrojos. He comprobado que la señal original del mando está modulada, es decir, cuando está a nivel alto no mantiene el nivel constantemente sino que "sube y baja" rápidamente. ¿Alguien sabe como implementar ésto en código C? Si alguien tiene alguna idea se lo agradecería.
Título: Re: Modulación De Un Pulso
Publicado por: lalo_soft en Jueves 8 de Febrero de 2007, 20:56
1.-¿para cual micro?
2.-¿que frecuencia base?
3.-¿sobre cual set de comandos?
Título: Re: Modulación De Un Pulso
Publicado por: infrarrojo en Viernes 9 de Febrero de 2007, 12:15
Es para el Motorola M68908QT4, lo estoy programando con el Metrowerks Codewarrior en C más procesador experto. El código que he utilizado es éste, en el cual mantengo el nivel alto constantemente, lo que habría que cambiarlo y modularlo, que es para lo que pido vuestra ayuda.
Título: Re: Modulación De Un Pulso
Publicado por: Aristides Alvarez en Sábado 10 de Febrero de 2007, 02:43
Si lo que te interesa es emular un control remoto IR, en este libro, está explicado:

http://www.parallax.com/detail.asp?product_id=70016 (http://www.parallax.com/detail.asp?product_id=70016)

Fijate que en esa página, más abajo está el PDF para bajar.
Título: Re: Modulación De Un Pulso
Publicado por: infrarrojo en Lunes 12 de Febrero de 2007, 13:10
Gracias le echaré un vistazo, aunque yo ya lo tengo casi hecho, lo único que me falta es modular los pulsos y creo que ya saldría con mi código. Gracias de todos modos.
Título: Re: Modulación De Un Pulso
Publicado por: infrarrojo en Miércoles 7 de Marzo de 2007, 17:50
Hola de nuevo. Ya casi lo tengo, pero me falla una cosa.
El código que tiene que enviar son doce pulsos, a alto o bajo según sea un uno o un cero. Tengo diseñado un micro pulso que se repetirá 21 veces si es un cero y 42 si es un uno. Lo tengo así:

    for (i=0; i<13; i++) {
       
       for (j=0; j<21+comando*21; j++) {

Pero me da un error en la segunda línea,creo que no lo puedo hacer directamente. Mi idea era que si comando era un cero se repetía 21 veces y si era un uno 42. ¿Alguien sabe si esa instrucción está bien o es fallo de Codewarrior? Gracias.