Autor Tema: como dormir un pic y despertarlo mediante MCLEAR  (Leído 10977 veces)

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

Desconectado Delphus

  • PIC12
  • **
  • Mensajes: 70
Re: como dormir un pic y despertarlo mediante MCLEAR
« Respuesta #15 en: 22 de Octubre de 2011, 01:37:20 »
Hola, investigando encontré la forma de liberar RB0 del lcd, estoy usando el codigo de este articulo
http://www.ucontrol.com.ar/wiki/index.php?title=CCS_-_LCD#Modificando_LCD.C
Funciona todo bien pero a la hora de salir un mensaje, la linea de arriba no muestra el primer caracter ni responde al lcd_gotoxy, si a alguien le pasó lo mismo le afradezco su ayuda, aca les dejo las conexiones y el mensaje:

Desconectado Delphus

  • PIC12
  • **
  • Mensajes: 70
Re: como dormir un pic y despertarlo mediante MCLEAR
« Respuesta #16 en: 22 de Octubre de 2011, 02:22:08 »
Bueno, buscando en el foro encontré http://www.todopic.com.ar/foros/index.php?topic=29970.0
le puse el lcd_putc("\f") dentro de un ciclo infinito pero es molesto pues el lcd parpadea mucho, entonces les pregunto 1. si hay manera de quitar ese parpadeo en el proteus y
2.si en el montaje real se ve ese parpadeo o no

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: como dormir un pic y despertarlo mediante MCLEAR
« Respuesta #17 en: 22 de Octubre de 2011, 04:18:23 »
vale, es que vi que cambiaste 2 veces el circuito, lo que te decia es que cualquier puerto B puedes configurarlo para una interrupcion al cambiar high->low o low->high si tienes alguno libre puedes usarlo en vez de kitar el B0 o lo que sea...

Desconectado Delphus

  • PIC12
  • **
  • Mensajes: 70
Re: como dormir un pic y despertarlo mediante MCLEAR
« Respuesta #18 en: 22 de Octubre de 2011, 09:55:06 »
ya comprendo MerLinz, y lo del parpadeo saben si se ve en el montaje real o no, es que no tengo el lcd aun pero dentro de poco me llega :-/
Saludos

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: como dormir un pic y despertarlo mediante MCLEAR
« Respuesta #19 en: 22 de Octubre de 2011, 10:08:35 »
segun el datasheet de ese pic he visto que el MCLR no sirve para despertar el pic, al ponerlo a LOW haces que el pic se resetee pero nada mas, cierto que sale del sleep, pero para ser reseteado.

Para que tu pic siga funcionando en modo sleep debes mantener el MCLR a HIGH, si lo pones a LOW se resetea.

Tienes otras opciones para salir del sleep:
2. Watchdog Timer wake-up (if WDT was enabled).
3. Interrupt from INT pin, RB port change or a
peripheral interrupt.

Aqui es donde pone que el MCLR solo se usa para reset en modo sleep:
External MCLR Reset will cause a device Reset. All
other events are considered a continuation of program
execution and cause a “wake-up”.

puedes verlo aqui en el datasheet:
15.13.1 WAKE-UP FROM SLEEP

Exacto! Es lo que puse al principio.

Digamos que se despierta, pero se resetea  :mrgreen: Los demás eventos si permiten continuar la ejecución: WDT, INT, RB4-RB7...

Pero vi que no quería aceptarlo  :D :D
No contesto mensajes privados, las consultas en el foro

Desconectado Delphus

  • PIC12
  • **
  • Mensajes: 70
Re: como dormir un pic y despertarlo mediante MCLEAR
« Respuesta #20 en: 22 de Octubre de 2011, 10:14:50 »
Hola Suky, Pero la forma que elegí despejando RB0 es correcta o no, y todavía tengo la duda del parpadeo...

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: como dormir un pic y despertarlo mediante MCLEAR
« Respuesta #21 en: 22 de Octubre de 2011, 10:19:32 »
Hola Suky, Pero la forma que elegí despejando RB0 es correcta o no, y todavía tengo la duda del parpadeo...

Si, con WDT, INT0 y RB4-RB7 trabaja de la forma que deseas. El tema del LCD, podes buscar flex_lcd y ese te permite seleccionar cualquier pin de forma fácil.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Delphus

  • PIC12
  • **
  • Mensajes: 70
Re: como dormir un pic y despertarlo mediante MCLEAR
« Respuesta #22 en: 22 de Octubre de 2011, 10:55:10 »
Hola suky, usé el lcd_flex y efectivamente ya no tengo que usar el borrado  :P , pero hay otro problema, pues la segunda linea no me aparece, qué podría ser?
la libreria que uso la adjunto

y asi comienza mi programa:

#include <16F88.h>
#FUSES INTRC, NOWDT, NOLVP, NOCPD, NOWRT, NODEBUG, NOPROTECT, NOFCMEN, NOIESO, MCLR, NOBROWNOUT, CCPB3
#use delay(clock=4000000)
#include <flex_lcd.c>
//#use fast_io(B)
#use fast_io(a)
« Última modificación: 22 de Octubre de 2011, 11:12:17 por Delphus »

Desconectado Delphus

  • PIC12
  • **
  • Mensajes: 70
Re: como dormir un pic y despertarlo mediante MCLEAR
« Respuesta #23 en: 23 de Octubre de 2011, 15:01:27 »
Hola, de todas maneras solo necesito usar la primera linea del lcd  :mrgreen: pero hubiera sido bueno saber la razón.
Gracias a todos por su ayuda.  :P

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: como dormir un pic y despertarlo mediante MCLEAR
« Respuesta #24 en: 23 de Octubre de 2011, 18:42:43 »
  Lo ideal sería ver tu programa entero para tratar de entender el porque no aparece la segunda línea del LCD
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado Delphus

  • PIC12
  • **
  • Mensajes: 70
Re: como dormir un pic y despertarlo mediante MCLEAR
« Respuesta #25 en: 23 de Octubre de 2011, 20:45:06 »
Hola AngelGris, les dejo algunas partes del programa donde uso el lcd pues este es más o menos largo:

Código: [Seleccionar]
lcd_init();  lcd_gotoxy(1,1); lcd_putc("Presiona menu "); lcd_gotoxy(2,2); lcd_putc("Bienvenido ");
Código: [Seleccionar]
printf(lcd_putc,"%i%i",dm,um);
Código: [Seleccionar]
printf(lcd_putc,"minutos  %i",posic);
o sea, no he cambiado nada, antes de cambiar la libreria la segunda linea funcionaba sin problemas pero al cambiarla por el lcd_flex, no la muestra.
Saludos


Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: como dormir un pic y despertarlo mediante MCLEAR
« Respuesta #26 en: 23 de Octubre de 2011, 21:49:23 »
creo que esa libreria no es compatible con el printf, lo que tienes en el printf es lo que no te funciona?? Si es asi, es por eso.

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: como dormir un pic y despertarlo mediante MCLEAR
« Respuesta #27 en: 23 de Octubre de 2011, 21:50:16 »
  ¿Probaste modificando la línea que define el tipo de LCD? ¿Usar el tipo 2, ya que indicaría que se utiliza un LCD de 2 lineas?
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado Delphus

  • PIC12
  • **
  • Mensajes: 70
Re: como dormir un pic y despertarlo mediante MCLEAR
« Respuesta #28 en: 24 de Octubre de 2011, 08:28:21 »
Tienes razón AngelGris, parece que debo modificar la linea 10

Código: [Seleccionar]
#define lcd_type 0 // 0=5x7, 1=5x10, 2=2 lines
ponerle tipo 2, más tarde pruebo pues estoy fuera de casa.
La función printf tampoco la veo en esta librería solo veo la putc ,pero aun así printf funciona y me permite darle formato a las cadenas.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: como dormir un pic y despertarlo mediante MCLEAR
« Respuesta #29 en: 24 de Octubre de 2011, 09:22:49 »
La función printf tampoco la veo en esta librería solo veo la putc ,pero aun así printf funciona y me permite darle formato a las cadenas.

Printf utiliza la función lcd_putc para "sacar" el texto formateado. Y hay que colocar 2 en la linea que indicas para tener 2 lineas.


Saludos.
No contesto mensajes privados, las consultas en el foro


 

anything