Autor Tema: los timer  (Leído 2724 veces)

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

Desconectado dj_valle

  • PIC10
  • *
  • Mensajes: 48
los timer
« en: 09 de Enero de 2006, 14:42:00 »
hola de nuevo,

cuando entra en funcionamiento el timer0 cada vez que se accede a su interrupcion se interrumpe el programa principal? supongo que si, verdad?

los demas timer tambien tienen interrupciones por desbordamiento? es que tengo un problema para presentar datos en el display pq el programa es muy largo y como hay que mostrarlos cada 4ms por ejemplo, pretendo usar una interrupcion para que cada 4ms cambien de display. Vosotros lo haceis asi o hay otra forma de presentar datos en displays (7 segmentos)? El timer 0 ya le estoy usando para calcular tiempos asi que seria con el timer1.

muchas gracias de nuevo... un saludo

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
RE: los timer
« Respuesta #1 en: 09 de Enero de 2006, 15:41:00 »
Hola dj_valle, si cada ves que el TMR0 se desborda y la interrupción esta activa el micro deja de ejecutar el programa principal y salta a la dirección N° 4 en la memoria de programa, luego de esta posición de memoria por lo general tienes una función GOTO que redirecciona a la rutina a ejecutar en caso de desbordamiento, ej.

         org      04h
         goto    REFRESCAR_DISPLAY (nombre de la rutina a ejecutar)

Los demás TMR también disponen de interrupciones pero en el caso del TMR2 este las usa para las funciones de CCP, PWM, etc. por lo cual el programa principal no se interrumpe.

La otra forma de la cual dispones para presentar datos en el display es la siguiente:
*En una subrutina colocas todos los comandos para que el display represente lo que se desea, a esta SUB la debes terminas con el comando RETURN.
*Dentro del programa principal y de todas las Subrutinas de este colocas de forma periódica un comando CALL el cual llamara a la rutina del display.
*Deberás de tener en cuenta que cada ves que se llega al CALL del display el programa o subprograma que se este corriendo se interrumpe para que el display se refresque de la forma indicada, luego de esto el micro seguirá ejecutando el programa desde exactamente donde lo había dejado.

Con este método el programa se alarga en unas cuantas direcciones de memoria, pero tienes la ventaja de que sabrás el tiempo exacto que te llevará hacer tal rutina y no usas un TMR, ni la interrupción por lo cual las tendrás libre para realizar otra función.

Pero de todas formas como tu comentas que el programa es demasiado largo creo que te convendría utilizar el TMR1 con lo cual te ahorraras un buen dolor de cabeza

Espero haberte ayudado, suerte en el emprendimiento.

Atte. CARLOS
La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado dj_valle

  • PIC10
  • *
  • Mensajes: 48
RE: los timer
« Respuesta #2 en: 09 de Enero de 2006, 15:51:00 »
muchas gracias por responder tan rapido y darme todas esas respuestas.

Suponia que lo unico que usaba el timer0 era el contador hasta el desborde aparte del programa principal, luego ya entra en juego la interrupcion y para el programa principal no?

Como bien dices, creo que voy a utilizar el timer1 para marcar los tiempos del display pq sino se me va a complicar todo demasiado, ya que uso el timer0 y algun que otro call por lo que usando un call para llamar a los displays tendria que meterlo dentro de otros call y ya seria un lio padre Sonrisa
A ver si me pongo a utilizar el timer1 que nunca lo he utilizado pero supongo que sera igual que el timer0, mas o menos.

Muchas gracias Chaly29.


Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
RE: los timer
« Respuesta #3 en: 09 de Enero de 2006, 19:35:00 »
Hola dj_valle, te comento que el TMR1 con respecto a las interrupciones no es exactamente igual al TMR0 pero si ya sabes usar este ultimo no creo que tengas problemas con el TMR1.

Con respecto al TMR0 contar no es lo unico que hace, sino que tambien es el encargado de generar temporizaciones y en el caso de usar el wachdog  es el encargado de la cuenta de tiempo antes de producir el reset

Suerte con el programa, y no dudes de postear cualquier pregunta que tengas.

Atte. CARLOS


La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: los timer
« Respuesta #4 en: 16 de Enero de 2006, 18:23:00 »
Escrito originalmente por Chaly29

Con respecto al TMR0 contar no es lo unico que hace, sino que tambien es el encargado de generar temporizaciones y en el caso de usar el wachdog  es el encargado de la cuenta de tiempo antes de producir el reset




Carlos, la información del TMR0 respecto al Watchdog que has puesto es érronea.

El TMR0 no se utiliza para generar temporizaciones del reset del watchdog.  Tal vez te ha confundido el hecho que utilicen el mismo prescaler, el cual puede ser asignado al Timer del Watchdog ó al Timer0, pero de ninguna manera el timer del Watchdog es el timer0.

El timer del Watchdog es interno, no se lo accede de ninguna forma y segun algunos en el foro de Microchip es un oscilador RC o similar, lo cierto es que la base de tiempo que accede al PIC es de 18mseg.  Es precisamente esta tiempo el cual se escala "prescaler veces" para lograr tiempos de watchdog mayores si la aplicación así lo requiere.

Otro dato:  si el TMR0 fuera la base de tiempo del Watchdog entonces el watchdog sería proporcional al Cristal que se utilice, lo cual no es asi.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
RE: los timer
« Respuesta #5 en: 16 de Enero de 2006, 20:41:00 »
Hola maunix , ¿sabes? tienes toda la razon, no se en que estba pensando.

Pido disculpas a las personas que pude haber confundido con mi explicación.

Gracias.

Atte. CARLOS
La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.


 

anything