Autor Tema: No actúa WatchDog. 16f877  (Leído 1289 veces)

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

Desconectado remi04

  • PIC24F
  • *****
  • Mensajes: 657
No actúa WatchDog. 16f877
« en: 22 de Diciembre de 2011, 10:54:25 »
Tengo una aplicación finalizada y depurada a la que ha llegado el momento de activarle el watchdog. Tras definir los puertos "tris" y las variables tengo configurado el postcaler asignado al WDT al maximo tiempo. Al cargar el flash en el pic le pongo varios fuses, entre ellos el fuse WDT en on a los cuales el pic responde bien a todos por lo que entiendo que al dar alimentación al pic y el programa comience a correr deberia resetearse constantemente pero no lo hace. El programa corre igual estando el fuse WDT en on que si estuviese en off y nunca se resetea. No tengo ClearWdt en ningun punto del programa aún.

 Como datos digo que el programa utiliza el timer0 y el timer1 con señales externas sin prescalador. El timer2 lo uso como base de tiempo para el CCP1 y CCP2 los cuales los uso simultaneamente en modo PWM out.  ¿Puede tener eso algo que ver???. Segun datasheet, el WDT tiene su propio oscilador RC, por lo que no creo que haya conflicto entre el WDT y el timer2 o los modulos CCP.

 Tambien doy como dato que el programa ocupa 8184 Words (Es decir, toda la flash). El espacio restante es para los clearwdt aunque solo necesito poner apenas 5.

 ¿sabe alguien por qué no resetea el WDT?.
 Un saludo.

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: No actúa WatchDog. 16f877
« Respuesta #1 en: 23 de Diciembre de 2011, 13:50:19 »
Citar
tengo configurado el postcaler asignado al WDT al maximo tiempo

Citar
Como datos digo que el programa utiliza el timer0 y el timer1 con señales externas sin prescalador

Hace tiempo que no uso este PIC, pero el WDT creo que no tiene postscaler, tiene preescaler compartido con TIMER0, mira si tu error viene de esto.
Si el preescaler del TMR0 esta configurado al minimo creo que el WDT salta a los 17ms aproximadamente.