• Sábado 14 de Diciembre de 2024, 16:00

Autor Tema:  Onda Cuadrada en C - Interrupcion de Timer  (Leído 2668 veces)

daniloarg007

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Onda Cuadrada en C - Interrupcion de Timer
« en: Viernes 16 de Octubre de 2009, 21:14 »
0
Hola a Todos.
Tengo que hacer un programa en Borland C que me saque una onda cuadrada por un pin del puerto paralelo. Lo que he hecho de momento es poner ese pin en uno y en cero con un delay luego de cambiar el estado del pin. Esto en realidad debe ocurrir al presionar una tecla del teclado.
Logre hacerlo, pero no de la mejor forma. El delay entiendo que no es lo correcto, ya que ademas de tener al programa contando siempre, no tengo control exacto sobre el ancho del los pulsos, ya que por ejemplo un semiciclo me queda ams ancho que el otro, por mas que ponga los dos delay iguales.
La idea y el cambio que me piden que implemente es que maneje la interrupcion de timer, y que luego de una determinada cuenta cambie el estado del puerto.

Alguien podria ayudarme, porque realmente no entiendo como hacerlo. Vi algunos tutoriales, pero no me llega a quedar claro. y no encuentro ningun codigo fuente en internet que lo logre entender como para poder sacar algo en limpio desde ahi.

Espero pueda alguien ayudarme.

Desde ya muchas gracias por todo.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Onda Cuadrada en C - Interrupcion de Timer
« Respuesta #1 en: Sábado 17 de Octubre de 2009, 01:53 »
0
Daré por supuesto que sabes manejar las interrupciones: http://www.sharpmz.org/mz-700/8253ovview.htm

daniloarg007

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Onda Cuadrada en C - Interrupcion de Timer
« Respuesta #2 en: Lunes 19 de Octubre de 2009, 16:42 »
0
Gracias m0skit0 por la info.
Lamentablemente no entiendo mucho lo que me has enviado.
Veo un codigo asembler aparentemente mas referido a programacion de PIC o Micros que a programacion con BorlandC en PC.

Tengo que hacer algo para PC basado mas en DOS que en Windows. Con BorlandC.

Como decia, logre varial el estado de un pin del puerto paralelo, pero con muy poca precision. Ademas tengo todo el tiempo ocupada a la PC haciendo cuentas o esperando por el Delay con el cual genero la demora.

El requerimiento es hacerlo usando la interrupcion de Timer en C. Y la verdad sigo sin entender como hacerlo.

Entiendo el concepto de interrupciones, hice algo en asembler hace varios años atras para algun micro. Pero en C y en PC en DOS nunca hice nada.

Espero haber sido claro.

Gracias

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Onda Cuadrada en C - Interrupcion de Timer
« Respuesta #3 en: Martes 20 de Octubre de 2009, 13:47 »
0
El enlace es un tutorial sobre el uso del temporizador a nivel bajo. Si vas a trabajar en DOS con el hardware con casos tan específicos y bajo nivel como pretendes, vas a tener que usar C como ensamblador de alto nivel :P

Aquí te dejo otro documento interesante sobre la UART (para lo del puerto paralelo): http://en.wikibooks.org/wiki/Serial_Pro ... _Registers