Autor Tema: Duda modo sleep 18f  (Leído 1732 veces)

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

Desconectado camhost1

  • PIC12
  • **
  • Mensajes: 51
Duda modo sleep 18f
« en: 30 de Mayo de 2014, 18:27:04 »
Hola compañeros del foro, estoy probando un programa muy simple de recepción de datos por el uart y como quiero ahorrar consumo de energía estoy usando la instrucción sleep(), se supone que cuando la interrupción RDA se activa sale de este modo, atiende la interrupción y procesa los datos. En proteus va bien, pero al probarlo en físico no anda queda simpre en sleep(), se que este es el error por que al quitar esta instruccion se arregla el problema, la pregunta es si se debe configurar algo extra para que funcione, adjunto el programa
Código: C
  1. #include <bluetoothmain.h>
  2. int8 bandera;
  3. char dato[2];
  4.  
  5.  
  6. #INT_RDA
  7. void  RDA_isr(void)
  8. {
  9.      get_string(dato,2);
  10.      bandera=1;
  11.      clear_interrupt(INT_RDA);
  12. }
  13.  
  14. void main()
  15. {
  16.  
  17.    enable_interrupts(INT_RDA);
  18.    enable_interrupts(GLOBAL);
  19.  
  20.    while(TRUE)
  21.    {
  22.       //TODO: User Code
  23.       sleep();
  24.       delay_ms(500);
  25.       if(bandera)
  26.         {
  27.          switch(dato[0])
  28.          {
  29.            case 'O': output_high(salida);
  30.            break;
  31.            case 'F': output_low(salida);
  32.            break;
  33.            default: output_high(pin_A2);
  34.            break;
  35.          }
  36.           bandera=0;
  37.         }
  38.      
  39.      
  40.    }
  41.  
  42. }

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Duda modo sleep 18f
« Respuesta #1 en: 01 de Junio de 2014, 14:56:37 »
Tengo entendido que cuando el micro retorna de la interrupción vuelve al mismo lugar donde estaba, es decir, vuelve al sleep.
podrías probar ponerlo a dormir mientras bandera=0
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado camhost1

  • PIC12
  • **
  • Mensajes: 51
Re: Duda modo sleep 18f
« Respuesta #2 en: 01 de Junio de 2014, 22:11:32 »
Hola amigo gracias por responder, te cuento que definitivamente no da señales de vida  :D :D :D , he cambiado de lugar la instrucción sleep pero nada, decidí quitarla y listo funciona sin problemas, dejo el tema abierto por si alguien se ha topado con este problema y le ha logrado dar solución, muchas gracias por la ayuda. Saludos

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: Duda modo sleep 18f
« Respuesta #3 en: 02 de Junio de 2014, 08:21:01 »
A mi me pasaba lo mismo pero con la interrupción ext2 del 18F2550
Pues bien, lo solucione deshabilitando las interrupciones globales antes de entrar en el sleep
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado sander

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 624
Re: Duda modo sleep 18f
« Respuesta #4 en: 02 de Junio de 2014, 11:50:06 »
Hola compañeros del foro, estoy probando un programa muy simple de recepción de datos por el uart y como quiero ahorrar consumo de energía estoy usando la instrucción sleep(), se supone que cuando la interrupción RDA se activa sale de este modo, atiende la interrupción y procesa los datos. En proteus va bien, pero al probarlo en físico no anda queda simpre en sleep(), se que este es el error por que al quitar esta instruccion se arregla el problema, la pregunta es si se debe configurar algo extra para que funcione, adjunto el programa


Despertar al PIC usando el puerto serial no es tan facil, revise el siguiente tema, le va a aclarar algunas cosas : enlace

Saludos
La electrónica es el arte de manipular señales eléctricas que transportan información
Jan Davidse

Visita mi blog
Visita mi canal de youtube

Desconectado camhost1

  • PIC12
  • **
  • Mensajes: 51
Re: Duda modo sleep 18f
« Respuesta #5 en: 02 de Junio de 2014, 13:51:41 »
Hola compañeros, muchas gracias por las sugerencias, en efecto pensé que era solo cuestión de una instrucción y ya  :mrgreen: :mrgreen:, veo que es un poco complejo y se debe leer sobre el tema, muchas gracias.