Autor Tema: Salir de SLEEP con WDT  (Leído 3770 veces)

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

Desconectado cgraciae

  • PIC10
  • *
  • Mensajes: 1
Salir de SLEEP con WDT
« en: 12 de Junio de 2007, 15:39:15 »
 :-/Estoy programando en CCS un 16F737. Necesito leer unas magnitudes AD cada 20 segundos con un micro alimentado con una pila, por lo que me gustaría reducir su consumo utilizando la instrucción sleep(). El problema es que no sé como despertar al micro con el WDT y seguir con el programa donde ha quedado. ¿Alguien puede ayudarme?

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: Salir de SLEEP con WDT
« Respuesta #1 en: 15 de Junio de 2007, 18:49:45 »
'Mete' al pic en el sleep y se desbordará el WDT, a continuación, ejecutará la instrucción después del sleep.


Suerte!!! ;)
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado chupy

  • PIC10
  • *
  • Mensajes: 3
Re: Salir de SLEEP con WDT
« Respuesta #2 en: 06 de Agosto de 2008, 22:06:05 »
tengo entendido que se resetea no? despues que desborda el wdt

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Salir de SLEEP con WDT
« Respuesta #3 en: 06 de Agosto de 2008, 22:46:01 »
Hola.

Si se usa la interrupcion del ADC directamente saldra del modo sleep no?

Saludos
El papel lo aguanta todo

Desconectado Gonzalo_BlackHawk

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 519
Re: Salir de SLEEP con WDT
« Respuesta #4 en: 07 de Agosto de 2008, 16:19:35 »
Hola a todos. Aca tienes que utilizar la interrupcion del timer para lograr que el micro se despierte cada 20 segundos. El WDT
no serviria en este caso porque no es posible alcanzar semejante intervalo de temporización, en general para los 16F es de 2034 ms o 2 seg, aunque no conozco a fondo el 16F737. El seudocogido sería:
Código: [Seleccionar]
Configurar timer

Habilitar interrupción del timer

while(1){
   read_adc()
   sleep()
   delay_cycles(1)
}

Estoy apurado, en otro momento te posteo algun código que tengo almacenado por ahi.

Saludos!
"Siempre piensa si el jugo vale la exprimida..."

"La muerte esta tan segura de vencer que nos da toda una vida de ventaja."

Desconectado reiniertl

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1187
Re: Salir de SLEEP con WDT
« Respuesta #5 en: 08 de Agosto de 2008, 22:28:43 »
Utiliza la cobinación TMR1 con reloj externo, te haces una red RC y completas el oscilador externo para que se desborde cada cierto tiempo (creo que 20 s es un tiempo bastante largo, pero bueno). Una vez despierto el uC, comenzaría a trabajar en la instrucción posterior al sleep, pero con el WDT no funcionará.

Tambié puedes hacer un circuito de wake-up con un 555 en configuración astable y conectarlo a INT (típicamente RB0) y con eso si el PIC está soñando el 555 lo despertará más o menos en el tiempo en que hayas diseñado este circuito.

Saludos
Reinier