• Martes 5 de Noviembre de 2024, 09:23

Autor Tema:  Despertar el micro por RX  (Leído 9101 veces)

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Despertar el micro por RX
« en: Viernes 5 de Diciembre de 2008, 11:37 »
0
Muy buenas, tengo un problema para despertar el micro cuando recibe datos por el puerto serie, si no le duermo, hago un retardo de 5 segundos, durante los cuales enciendo el otro equipo que le manda datos y lo recibe perfectamente, pero al ser un equipo que va a funcionar por baterias, tengo que dormirle, lo unico que hago es quitar el retardo y poner un sleep y esperar a que le mande los datos desde el otro equipo, pero le mando los datos y este no se despierta. ¿No se supone que sale del reposo cuando recibe una interrupcion?

Un saludo.

Toph

  • Moderador
  • ******
  • Mensajes: 420
  • Nacionalidad: sv
    • Ver Perfil
    • http://www.electronicayotros.blogspot.com/
Re: Despertar el micro por RX
« Respuesta #1 en: Viernes 5 de Diciembre de 2008, 17:50 »
0
Cita de: "Pegasux"
¿No se supone que sale del reposo cuando recibe una interrupcion?

 :huh: No necesariamente, no has puesto cual pic estas utilizando, pero por lo menos el que yo utilizo el PIC 16F877 segun su manual despierta del estado sleep por interrupciones de USART  RX o TX solo en modo esclavo sincrono , creo que ese es tu problema.
 Creo que se puede solucionar activando la interrupcion por el bit INT (que si lo despierta) a travez de la RX
Por favor leer esto antes de postear. Gracias
NO alimenten al TROLL y morirá
¿Querés ayudar?, pues doná comida gratis con un simple clic aqui ,sin trucos
photobucket , Google , wine y cutepdf Rock!!!


programacion,c,c++,
Microcontroladores,java,linux,videojuegos,
,.NET,asm,codigo
por favor este 2012 que sea

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Re: Despertar el micro por RX
« Respuesta #2 en: Viernes 5 de Diciembre de 2008, 18:20 »
0
Gracias Toph, tiene toda la pinta de ser eso. Uso el 16F876. Con lo del bit INT te refieres a puentear el pin RX con el RB0?

Muchas gracias y un saludo.

Toph

  • Moderador
  • ******
  • Mensajes: 420
  • Nacionalidad: sv
    • Ver Perfil
    • http://www.electronicayotros.blogspot.com/
Re: Despertar el micro por RX
« Respuesta #3 en: Viernes 5 de Diciembre de 2008, 18:28 »
0
Cita de: "Pegasux"
Gracias Toph, tiene toda la pinta de ser eso. Uso el 16F876. Con lo del bit INT te refieres a puentear el pin RX con el RB0?

Muchas gracias y un saludo.

 :yes: deberia funcionar, es de probar
Por favor leer esto antes de postear. Gracias
NO alimenten al TROLL y morirá
¿Querés ayudar?, pues doná comida gratis con un simple clic aqui ,sin trucos
photobucket , Google , wine y cutepdf Rock!!!


programacion,c,c++,
Microcontroladores,java,linux,videojuegos,
,.NET,asm,codigo
por favor este 2012 que sea

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Re: Despertar el micro por RX
« Respuesta #4 en: Viernes 5 de Diciembre de 2008, 19:01 »
0
Oki, lo probare el lunes que ya se me hace tarde.

Saludos y gracias!!

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Re: Despertar el micro por RX
« Respuesta #5 en: Martes 9 de Diciembre de 2008, 13:26 »
0
Muy buenas. Pues parece que no funciona bien la cosa. Tambien he probado a colocar un diodo en ambos sentidos (por si acaso). El tema es que si habilito la interrupcion del bit 0 del puerto B se despierta siempre, aunque no  haya señal de recepcion (quito el cable). Igual pruebo con resistencias pull-up y pull-down... Si alguien tiene alguna idea se agradece toda la ayuda posible.

Saludos.

Toph

  • Moderador
  • ******
  • Mensajes: 420
  • Nacionalidad: sv
    • Ver Perfil
    • http://www.electronicayotros.blogspot.com/
Re: Despertar el micro por RX
« Respuesta #6 en: Martes 9 de Diciembre de 2008, 16:18 »
0
Cita de: "Pegasux"
Muy buenas. Pues parece que no funciona bien la cosa. Tambien he probado a colocar un diodo en ambos sentidos (por si acaso). El tema es que si habilito la interrupcion del bit 0 del puerto B se despierta siempre, aunque no  haya señal de recepcion (quito el cable). Igual pruebo con resistencias pull-up y pull-down... Si alguien tiene alguna idea se agradece toda la ayuda posible.

Saludos.

la interrupcion en el puerto B ¿las has puesto que se active con bajo?, ya que debe ser asi, porque sino mal recuerdo cuando no ha recibido dato esta en alto hasta que recibe cambia a cero momentaneamente.
Por favor leer esto antes de postear. Gracias
NO alimenten al TROLL y morirá
¿Querés ayudar?, pues doná comida gratis con un simple clic aqui ,sin trucos
photobucket , Google , wine y cutepdf Rock!!!


programacion,c,c++,
Microcontroladores,java,linux,videojuegos,
,.NET,asm,codigo
por favor este 2012 que sea

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Re: Despertar el micro por RX
« Respuesta #7 en: Martes 9 de Diciembre de 2008, 16:47 »
0
Hola de nuevo. No se como se hace exactamente lo que dices, pero si que puede ser... tengo un libro de este pic y aqui no pone nada de que se activen a nivel bajo. Pongo debajo el codigo de lo que hago, se que no esta completo, pero es por abreviar... La idea es que mientras duerme, le llega el primer byte y antes de que salte la interrupcion por recepcion (la recepcion es mucho mas lenta que el micro) el micro se despierta y al retornar de la Interrupcion hace el retardo de 1 segundo durante el cual le llega todo el paquete de datos, despues se habilita el LCD y saca algo por pantalla.

Un saludo y muchas gracias!!!

.....
   bcf      STATUS,RP0      ; banco 0
   bcf      PORTA,2         ; deshabilitamos LCD para evitar problemas (señal E)

   bsf      STATUS,RP0      ; banco 1
   bsf      TRISB,0         ; PortB,0 como entrada para INT0
   bcf      STATUS,RP0      ; banco 0

   bsf      INTCON,4      ; INT0IE habilitado

;   call   RX            ; nos preparamos para recibir datos por interrupciones

   sleep   ; AQUI SE SUPONE QUE SALTA LA INTERRUPCION

   call Retardo_1s      ; para que le de tiempo al paquete a llegar entero

   bsf      STATUS,RP0      ; banco 1
   bcf      TRISB,0         ; PortB,0 como salida para LCD
   bcf      STATUS,RP0      ; banco 0

   bsf      PORTA,2         ; habilitamos LCD
....
ServicioInterrupcion

      MOVWF   GUARDA_W
      SWAPF   STATUS,W
      MOVWF   GUARDA_S   

   bcf      INTCON,4      ; quitamos interrupciones por INT0
   bcf      INTCON,1      ; borramos flag INT0

      SWAPF GUARDA_S,W
      MOVWF STATUS
      SWAPF   GUARDA_W,W

   retfie

....

Toph

  • Moderador
  • ******
  • Mensajes: 420
  • Nacionalidad: sv
    • Ver Perfil
    • http://www.electronicayotros.blogspot.com/
Re: Despertar el micro por RX
« Respuesta #8 en: Martes 9 de Diciembre de 2008, 16:58 »
0
Cita de: "Pegasux"
Hola de nuevo. No se como se hace exactamente lo que dices, pero si que puede ser... tengo un libro de este pic y aqui no pone nada de que se activen a nivel bajo.
pegasux a parte de los libros debes revisar el datasheet, en el registro OPTION_REG REGISTER (ADDRESS 81h, 181h) esta el bit 6 INTEDG para colocar lo que te digo
Citar
bit 6 INTEDG: Interrupt Edge Select bit
1 = Interrupt on rising edge of RB0/INT pin
0 = Interrupt on falling edge of RB0/INT pin
ahi debes colocar que sea 0 (cuando haya un flanco negativo, pase de uno a cero),otra cosa en cuanto se de la interrupcion la desactivas porque despues van a llegar mas flancos.

como veo que no estabas usando este registro, si ves en el datasheet ese bit estaba a uno o sea que detectaba flanco positivo
Por favor leer esto antes de postear. Gracias
NO alimenten al TROLL y morirá
¿Querés ayudar?, pues doná comida gratis con un simple clic aqui ,sin trucos
photobucket , Google , wine y cutepdf Rock!!!


programacion,c,c++,
Microcontroladores,java,linux,videojuegos,
,.NET,asm,codigo
por favor este 2012 que sea

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Re: Despertar el micro por RX
« Respuesta #9 en: Martes 9 de Diciembre de 2008, 18:15 »
0
Hola de nuevo. Muchas gracias por tu ayuda, pero me temo que sigue sin funcionar. Sin conectar a ningun sitio salta la interrupcion, ya sea con el bit ese a 0 o a 1, y con resistencias pull up o pull down tambien salta. He comprobado con un led la polaridad de la linea RX y he comprobado que en ausencia de datos esta a ' 1', luego es correcto que la irq se produzca por flanco de bajada, aunque mientras se estan recibiendo los datos del primer byte habra varios flancos de subida y bajada, por lo que deberia saltar de todas formas... Tambien he probado habilitando y deshabilitando las resistencias de pull up del puerto B, pero nada...
Efectivamente lo primero que hago al entrar en la interrupcion es desactivarlas, ya que como se ha despertado el micro ya no me sirve para nada.

Un saludo.

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Re: Despertar el micro por RX
« Respuesta #10 en: Martes 9 de Diciembre de 2008, 18:19 »
0
He probado otra cosa, dentro de la interrupcion lo que hago es mostar una letra por pantalla, pero no lo hace, como si no entrase en la interrupcion, pero sin embargo el sleep lo pasa, porque me muestra por pantalla otros datos que hay mas abajo en el programa...

Toph

  • Moderador
  • ******
  • Mensajes: 420
  • Nacionalidad: sv
    • Ver Perfil
    • http://www.electronicayotros.blogspot.com/
Re: Despertar el micro por RX
« Respuesta #11 en: Martes 9 de Diciembre de 2008, 18:35 »
0
Cita de: "Pegasux"
He probado otra cosa, dentro de la interrupcion lo que hago es mostar una letra por pantalla, pero no lo hace, como si no entrase en la interrupcion, pero sin embargo el sleep lo pasa, porque me muestra por pantalla otros datos que hay mas abajo en el programa...

¿No entra a la interrupcion de la USART?, fijate bien si no estas deshabilitando esta interrupcion o existe algun conflicto en alguna parte del programa, lo de la interrupcion INT parece funcionar ya que sale del modo Sleep, creo que el error es del programa de algun registro lo que debes hacer es  simular el programa, para su depuracion ya que "Teoricamente" debe funcionar.
Por favor leer esto antes de postear. Gracias
NO alimenten al TROLL y morirá
¿Querés ayudar?, pues doná comida gratis con un simple clic aqui ,sin trucos
photobucket , Google , wine y cutepdf Rock!!!


programacion,c,c++,
Microcontroladores,java,linux,videojuegos,
,.NET,asm,codigo
por favor este 2012 que sea

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Re: Despertar el micro por RX
« Respuesta #12 en: Martes 9 de Diciembre de 2008, 18:58 »
0
Hola de nuevo, veras, perdona porque he metido la pata anteriormente con lo de sacar por pantalla, porque deshabilito el LCD antes del sleep  y era logico que no saliera nada. El tema es que sin haber recepcion de datos salta la interrupcion, pongo la patilla RX con una resistencia a vcc o a gnd para que este simpre a 1 o a 0 y aun asi el micro se despierta, osea, que algo falla por algun lado.

Gracias y un saludo.

Toph

  • Moderador
  • ******
  • Mensajes: 420
  • Nacionalidad: sv
    • Ver Perfil
    • http://www.electronicayotros.blogspot.com/
Re: Despertar el micro por RX
« Respuesta #13 en: Martes 9 de Diciembre de 2008, 19:13 »
0
Cita de: "Pegasux"
El tema es que sin haber recepcion de datos salta la interrupcion, pongo la patilla RX con una resistencia a vcc o a gnd para que este simpre a 1 o a 0 y aun asi el micro se despierta, osea, que algo falla por algun lado.

Desactiva lo de la interrupcion por INT y ve si hay alguna otra cosa que este sacando del estado sleep al micro, (a mi el que me dio problemas fue el pin de reset, verificalo que no tenga algun falso, ese debe estar permanentemente a uno).

si cuando ya no estas utilizando la interrupcion INT NO se sale del sleep hay que revisar sino hay algun falso o algo en el pin (ya que supongo estas usando breadboard o protoboard), porque la configuracion de la interrupcion externa no es gran cosa no hay donde perderse estaria raro  :wacko:
Por favor leer esto antes de postear. Gracias
NO alimenten al TROLL y morirá
¿Querés ayudar?, pues doná comida gratis con un simple clic aqui ,sin trucos
photobucket , Google , wine y cutepdf Rock!!!


programacion,c,c++,
Microcontroladores,java,linux,videojuegos,
,.NET,asm,codigo
por favor este 2012 que sea

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Re: Despertar el micro por RX
« Respuesta #14 en: Miércoles 10 de Diciembre de 2008, 11:08 »
0
Hola de nuevo. Si que puede que tengas razon, tengo problemas con el circuito, ahora no consiguo programar el pic... deben de ser los cables que no hacen bien contacto. Lo he cambiado de ladrillo pero sigue igual, imagino que es algun puñetero cable tal y como dices. De momento voy a ver si lo pongo todo en orden.

Un saludo.

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Re: Despertar el micro por RX
« Respuesta #15 en: Miércoles 10 de Diciembre de 2008, 16:14 »
0
Hola. Parece que ya esta solucionado el tema de los cables (por ahora...) pero me he dado cuenta de un problema, si hacemos el susodicho puente entre la linea Rx y RB0, la linea 0 del puerto B esta compartida por el LCD y por la linea de recepcion, esta ultima está simpre que no haya datos a 1, por lo que los datos que van para el display se falsean y aparecen cosas raras... Se me ocurren dos soluciones, la facil es colocar un transistor y activarlo con un bit de los que no uso del puerto C solamente cuando nos convenga, desactivando previamente el LCD, y la solucion dificil es cambiar el manejo del display de 8 a 4 bits, dejando libres los 4 bits de menos peso del puerto B, lo cual no se si me traera mas dolores de cabeza porque lo tengo todo hecho con la libreria de 8 bits...  El tema es que una vez hecha la necesaria correccion va a ser mucho mas facil solucionar lo del sleep... Yo optaria por colocar el transistor, pero esque no llevo ninguno encima....

Toph

  • Moderador
  • ******
  • Mensajes: 420
  • Nacionalidad: sv
    • Ver Perfil
    • http://www.electronicayotros.blogspot.com/
Re: Despertar el micro por RX
« Respuesta #16 en: Miércoles 10 de Diciembre de 2008, 16:54 »
0
Cita de: "Pegasux"
si hacemos el susodicho puente entre la linea Rx y RB0, la linea 0 del puerto B esta compartida por el LCD y por la linea de recepcion, esta ultima está simpre que no haya datos a 1, por lo que los datos que van para el display se falsean y aparecen cosas raras
:blink: De hecho estas haciendo corto circuito cuando a la vez aparecen un uno y un cero por esa linea.
¿No hay posibilidad de colocar el LCD en el puerto C?
Por favor leer esto antes de postear. Gracias
NO alimenten al TROLL y morirá
¿Querés ayudar?, pues doná comida gratis con un simple clic aqui ,sin trucos
photobucket , Google , wine y cutepdf Rock!!!


programacion,c,c++,
Microcontroladores,java,linux,videojuegos,
,.NET,asm,codigo
por favor este 2012 que sea

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Re: Despertar el micro por RX
« Respuesta #17 en: Miércoles 10 de Diciembre de 2008, 17:49 »
0
Hola de nuevo. En el puerto C tampoco puedo colocar el LCD, tengo las lineas 6 y 7 que son las de la UART y tendria el mismo problema. He estado haciendo unas pruebas con un led colocado en el puerto C y le ordeno que lo encienda si se despierta del sleep, el tema es que si deshabilito el INT0 el led no se enciende, pero si lo habilito, el led se enciende aunque aparentemente no este recibiendo datos. Si fijo la linea RB0 a 1 quitando la linea de recepcion, el led no se enciende, luego parece que el problema viene de oscilaciones en la linea de recepcion cuando la linea deberia estar a 1 permanente mientras no le mande datos...  Una pregunta que se me viene a la cabeza, Si el micro esta dormido ¿Funciona la recepcion de datos? porque si no funciona puede que parte del primer byte no se reciba correctamente mientras el micro despierta y eso fastidie la comunicacion, aunque al final consiga despertarse correctamente se puede perder el dato... Lo tengo configurado a 125kbps.

Toph

  • Moderador
  • ******
  • Mensajes: 420
  • Nacionalidad: sv
    • Ver Perfil
    • http://www.electronicayotros.blogspot.com/
Re: Despertar el micro por RX
« Respuesta #18 en: Miércoles 10 de Diciembre de 2008, 19:04 »
0
Cita de: "Pegasux"
pero si lo habilito, el led se enciende aunque aparentemente no este recibiendo datos.
O sea que se sale del sleep aunque no se de la interrupcion. Como te dije antes hay que ver que otras casos sacan al micro de sleep:

*Si esta activado el perro guardian al desbordarse esta sacando de sleep al micro
*El pin de reset MCLR
*cuando las interrupciones están deshabilitadas, pero el flag de habilitación de cualquier fuente de interrupción está activo y el bit de interrupción también está activo antes de la llamada a SLEEP, este se comporta como un NOP por lo tanto NUNCA entra en Sleep

Cita de: "Pegasux"
Una pregunta que se me viene a la cabeza, Si el micro esta dormido ¿Funciona la recepcion de datos? porque si no funciona puede que parte del primer byte no se reciba correctamente mientras el micro despierta y eso fastidie la comunicacion, aunque al final consiga despertarse correctamente se puede perder el dato... Lo tengo configurado a 125kbps.

 :think: buena pregunta, por mi poca experiencia con el uso de sleep me imagino que el proceso de despertarse es rapido y si alcanza a recibir los datos ya que si el micro se ha despertado por interrupcion y el sistema de interrupcion esta habilitado (INTCON7 =1), se ejecuta la instruccion que sigue a la instruccion sleep (se recomienda colocar un NOP) y se salta a a la direccion 4 de la memoria buscando la rutina de atencion a la interrupcion.
esto se hace en pocas fracciones de segundo
Por favor leer esto antes de postear. Gracias
NO alimenten al TROLL y morirá
¿Querés ayudar?, pues doná comida gratis con un simple clic aqui ,sin trucos
photobucket , Google , wine y cutepdf Rock!!!


programacion,c,c++,
Microcontroladores,java,linux,videojuegos,
,.NET,asm,codigo
por favor este 2012 que sea

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Re: Despertar el micro por RX
« Respuesta #19 en: Jueves 11 de Diciembre de 2008, 10:00 »
0
Una vez mas gracias por tu ayuda. Acerca del WDT puede que este activado, no lo se porque yo uso la secuencia de configuracion   __config 3D31 y no se lo que esta incluido, el tema es que si pongo la tipica: __config _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC el circuito no funciona, no hace absolutamente nada (compilar compila bien) y por eso no la uso.

He visto en el libro que en sleep los valores de los puertos se mantienen, por lo que si que puedo usar el transistor para conectar las lineas.

Un saludo.

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Re: Despertar el micro por RX
« Respuesta #20 en: Jueves 11 de Diciembre de 2008, 11:41 »
0
Ahora que he cambiado el LCD por unos leds en los bits del puerto C que no utilizo, estoy observando cierto fenomeno. Al encender el aparato los leds parpadean 2 veces y luego se quedan apagadados en sleep (bien), cuando le mando datos, sale del sleep, pero no continua con el programa, se reinicia, los leds vuelven a parpadear 2 veces, lo mas curioso de todo es que los datos se los envio por un dispositivo inalambrico desde otro circuito, cuando recibe los datos por RF estos son enviados al pic por el puerto serie y es cuando tiene que despertarse, pues bien, tanto cuando enciendo el aparato emisor de RF como cuando lo apago el micro se sale del sleep y se reinicia, repito que es muy curioso porque el otro dispositivo que emite la RF esta totalmente separado, no tienen en comun mas que el aire. Posiblemente cuando lo apago, el modulo inalambrico local detecta que ha perdido la señal del emisor y envia un paquete de datos al micro para avisarle (digo yo) pero de todas formas, cuando enciendo el emisor y este acto seguido envia los datos, el microcontrolador deberia recibir el paquete de datos o cualquier cosa y comprobar que es correcto el checksum, encendiendo un led verde en caso de ser correcto o uno rojo en caso de ser incorrecto. El asunto es que en vez de comprobar el checksum, el micro se resetea porque veo claramente que los leds parpadean como les indico al principio del programa.

En resumen, al encender el micro los leds parpadean 2 veces, enciendo el transmisor, los leds parpadean 2 veces (cuando tendria que encenderse solamente el verde o el rojo) y cuando apago el transmisor otra vez parpadean (cuando no deberian hacer nada). Evidentenmente, si no enciendo el transmisor los leds se quedan apagados indefinidamente...

Un saludo.

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Re: Despertar el micro por RX
« Respuesta #21 en: Jueves 11 de Diciembre de 2008, 11:54 »
0
Hola de nuevo, acabo de percibir que al apagar el transmisor no siempre reinicia, solamente lo hace a veces....

Toph

  • Moderador
  • ******
  • Mensajes: 420
  • Nacionalidad: sv
    • Ver Perfil
    • http://www.electronicayotros.blogspot.com/
Re: Despertar el micro por RX
« Respuesta #22 en: Jueves 11 de Diciembre de 2008, 15:49 »
0
Cita de: "Pegasux"
cuando le mando datos, sale del sleep, pero no continua con el programa
cuando el micro sale del sleep a fuerza ejecuta la siguiente instruccion y luego sigue con el programa o ejecuta una interrupcion, segun lo que he leido bajo ninguna circunstancia se reinicia por lo que creo que es el watchdog el que esta dando los problemas.
Cita de: "Pegasux"
uso la secuencia de configuracion __config 3D31 y no se lo que esta incluido

segun vi en esa configuracion esta incluido esto:
Citar
__CONFIG   0x3D31   ;Palabra de Config. OSC=XT, WDT=OFF, PWRTE=ON, BODEN=OFF, LVP=OFF, Sin codigo de Proteccion
el WDT esta desactivado, yo para asegurarme siempre desactivo el watchdog cuando hago la programacion(en winpic800)

suerte y saludos.
Por favor leer esto antes de postear. Gracias
NO alimenten al TROLL y morirá
¿Querés ayudar?, pues doná comida gratis con un simple clic aqui ,sin trucos
photobucket , Google , wine y cutepdf Rock!!!


programacion,c,c++,
Microcontroladores,java,linux,videojuegos,
,.NET,asm,codigo
por favor este 2012 que sea

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Re: Despertar el micro por RX
« Respuesta #23 en: Jueves 11 de Diciembre de 2008, 17:59 »
0
Hola de nuevo, el WDT si que parece estar desactivado, en el programa de grabar el micro he mirado la configuracion y esta correcta. La Int0 parece que la hace bien, ya que si despieto a mano el micro funciona correctamente, pero despues de despertarle le mando los datos por la linea rx y el checksum da mal, por otro lado, si le conecto directamente a la linea rx, el micro despierta del sleep inmediatamente sin haberle enviado nada (y eso que tiene una resistencia pull up) como si se le enviara algun dato por la linea rx, y ademas el checksum da incorrecto. Me parece que va a tener mas culpa el modulo inalambrico que el pic... Voy a empaparme bien como funciona el modulo XBee para ver si es el causante de todo esto.

Saludos.