Autor Tema: Timer 1 en Sleep Mode ; Comandos AT desde PIC  (Leído 1929 veces)

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

Desconectado dobler41

  • PIC10
  • *
  • Mensajes: 1
Timer 1 en Sleep Mode ; Comandos AT desde PIC
« en: 12 de Agosto de 2008, 11:21:00 »
Hola Compañeros, soy nuevo en el Foro. Estoy realizando el proyecto final de carrera y tengo un par de dudas que mi director de proyecto no me puede responder (esta de vacaciones y no mira el correo).

Os explico:

Estoy utilizando el PIC 18F4550, y en mi aplicación lo tengo conectado a un dispositivo ZigBee. En primer lugar tengo que configurar el ZB desde el pic, y esto se hace mediante comandos AT. Desde el hyperterminal de Windows si que se como hacerlo, pero desde el codigo del micro (lo estoy haciendo en C) no estoy seguro de haberlo hecho bien.

Yo lo que he hecho es crearme un vector de 4 posiciones (porque tengo que enviar 4 comandos en total). En primer lugar lo que hago es colocar en el resgistro TXREG '+++' (escribiendo "+++" desde el hyperterminal se entra al modo comandos AT) y me quedo esperando a que el ZB responda 'OK' (en el hyperterminal si que aparece el "OK")
Una vez recibo el "OK" le envio el primer comando: 'ATDL 00' y espero nuevamente al 'OK', asi con todos los comandos que tengo que enviarle al ZB.

Una vez el ZB ya esta configurado y ya funciona el programa, el PIC debe dormirse durante aproximadamente 10 minutos, y luego despertarse.
Para dormir al micro utilizo el comando asm SLEEP. Ahora mi duda viene con respecto al oscilador que se queda funcionando. Tengo entendido que el TIMER1 es el unico que puede funcionar con el Sleep Mode, pero...para que esto ocurra hay que configurar el resgistro OSCCON? o solo con el TICON es suficiente? o con algun otro?

Y otra cosa...como contabilizo los 10 minutos? Con el timer 1 mientras este hace de reloj principal? Simplemente hay que cargarle los valores al TMR1H y al TMR1L y esperar a la interrupcion?

Y ya por último, cuando pasen los 10 minutos y se despierte el micro por interrupcion, él solo retorna a su reloj principal? (en mi caso un cristal de 4MHz o hay que configurar algun registro para que no siga funcionando con el de 32KHz del Timer1?)

Mil gracias a todos los que me podais ayudar!!

Un saludo!!

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Timer 1 en Sleep Mode ; Comandos AT desde PIC
« Respuesta #1 en: 24 de Octubre de 2008, 07:10:48 »
Veo que llego dos meses tarde a este post, y me sorprende que no haya tenido respuesta antes.
En fin, supongo que ya lo habrás resuelto, pero por si acaso te contesto alguna de las dudas:

- el registro OSCCON hay que configurarlo siempre para adecuarlo al oscilador que quieras utilizar
- por supuesto también tendrás que configurar el Timer1 para que la interrupción desborde y saque al PIC de su letargo
- no conseguirás una configuración que haga despertar al pic 10 minutos después, sino en lápsos más cortos de tiempo que tendrás que ir contando y acumulando hasta llegar a 10 minutos. O sea, tendrás que implementar un ciclo así: desbordamiento del timer -> despierta -> interrupción -> acumulamos en una variable -> vuelve a dormir ...