Autor Tema: Contador de eventos y respaldo tras apagado del microcontrolador  (Leído 3429 veces)

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

Desconectado lobito23

  • PIC10
  • *
  • Mensajes: 3
Contador de eventos y respaldo tras apagado del microcontrolador
« en: 14 de Febrero de 2010, 18:53:21 »
Tengo un problema quizá alguien pueda ayudarme.  Mi problema es el siguiente, tengo que realizar un programa en el cual el PIC ejecute X función, por ejemplo encender un led.  Este programa se tendrá que ejecutar  50 veces, es decir, que aunque el PIC sea desconectado lo guarde en una especie de memoria en un contador y cuando se vuelva a encender siga contando el número de veces que se ejecuto la función y al llegar al 50 el programa sea bloqueado o borrado y no se permita ejecutar la función en adelante. Agradecería enormemente su ayuda ya que no tengo idea de cómo hacerlo.
« Última modificación: 14 de Febrero de 2010, 21:02:52 por Suky, Razón: Se modifica titulo... LEER REGLAS DEL FORO »

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: Ayuda con el PIC
« Respuesta #1 en: 14 de Febrero de 2010, 19:02:23 »
Me imagino que encenderas un led durante un tiempo.
-Esperar un evento para que se vuelva a encender durante otro periodo de tiempo.
-Tendras que utilizar un contador que vaya contando las veces que se ha encendido.
- Guardar el nº de veces en la memoria flasch(por ejemplo) por si falta la tension y recuperarla despues.
- Comparar si se ha llegado al nº total de veces.
- Dejar el pic dormido, realizando un bucle sin fin o lo que quieras.

Pero sobre todo lee las reglas del foro y utiliza el buscador

Fermin
Todos los días se aprende algo nuevo.

Desconectado septiembre_negro

  • PIC18
  • ****
  • Mensajes: 310
Re: Ayuda con el PIC
« Respuesta #2 en: 14 de Febrero de 2010, 19:08:43 »
Pues bien paisano lo que pretendes no tiene mayor complejidad asta me suena a practica del cole. :mrgreen: :mrgreen:
Lo primero que tienes que hacer es decidir en que lenguaje vas a desarrollar tu práctica asm, Basic, c, pascal.
Y en que tipo de micro atmel, motolola , maxim, microchip.
Resuelto esto como bien dices tú ejercicio no es más que un contador descendente guardado en eprom.
Pega por aquí tus avances de código y siempre habla alguien dispuesto a ayudarte

Desconectado lobito23

  • PIC10
  • *
  • Mensajes: 3
Re: Contador de eventos y respaldo tras apagado del microcontrolador
« Respuesta #3 en: 15 de Febrero de 2010, 23:48:16 »
muchas gracias por sus respuestas.  con respecto a lo que mensionas septiembre_negro es una practica pero sabia por donde entrarle, el micro que estoy utilizando es el 18F452 y voy a compilar el programa en CCS.

pues bien considerando que es un contador descendente que al llegar a determinadas veces que ejecute el programa, este entre en modo Sleep y ya no salga de este. y antes de esto las veces que ejectute el programa debera guardarse en la eprom interna del micro para que un desconectando la fuente del micro este dato permanesca guardado en el micro.

como guardo estos datos en la emprom? esta se borra cuando desconecto la fuente de alimentacion, o es necesario alimentarlo con una bateria extra solo para el pic?


Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Contador de eventos y respaldo tras apagado del microcontrolador
« Respuesta #4 en: 16 de Febrero de 2010, 00:35:27 »
Para guardar datos en la eeprom usa el buscador del foro, hay mucha información al respecto.


Luego no es necesario utilizar una batería de respaldo, la información que se guarde en la eeprom no se modificará hasta que ocurra una nueva escritura.


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

Desconectado lobito23

  • PIC10
  • *
  • Mensajes: 3
Re: Contador de eventos y respaldo tras apagado del microcontrolador
« Respuesta #5 en: 23 de Febrero de 2010, 13:52:39 »
muchas gracias por su ayuda, buscando en el foro encontre como utilizar la eeprom, mi problema ahora es que cuando desconecto el pic de la fuente de alimentacion la memoria se borra,¿alguien me puede ayudar para saber si estoy haiendo bien las cosas?
aqui esta el programa:

#include <18f452.h>                   
#fuses XT,NOWDT,NOPROTECT,PUT,NOLVP,NOBROWNOUT,NOCPD,NODEBUG
#use delay (clock=4000000)       
#byte puerto_A = 0X05
#byte puerto_D = 0x08 
#define use_portb_lcd TRUE         
#include <lcd.c>                 

   
void main(void)
{
   long int contador;
   long int volumen;     
   set_tris_b(0x00);
   set_tris_a(0x00); 
   lcd_init();                 
   
   
WHILE (TRUE)
   {
        lcd_gotoxy(6,1);
        printf(lcd_putc,"NUMERO:");
        lcd_gotoxy(9,2);
        printf(lcd_putc,"%Lu",contador);   
        if(input(pin_D0))
         {
            contador=contador+1;
            delay_ms(200);
         }

if(input(pin_A0))
{
contador=0;
      Lcd_putc("\f" );
      write_eeprom(0,contador);
      volumen = read_eeprom(0);         
      printf(lcd_putc,"%Lu",volumen);
      delay_ms(500);
      lcd_putc("\f");                     
      }
   }
 
}

Desconectado septiembre_negro

  • PIC18
  • ****
  • Mensajes: 310
Re: Contador de eventos y respaldo tras apagado del microcontrolador
« Respuesta #6 en: 23 de Febrero de 2010, 19:51:13 »
Pues no le miro sentido a este ejemplo esto es lo que estas asiendo

if(input(pin_A0)) ;            cuando pin a0 vale 1
{
contador=0; ‘                   la variable contador es puesta a 0
      Lcd_putc("\f" );
      write_eeprom(0,contador); escribes en la dirección 0 de la memoria la variable contador=0
      volumen = read_eeprom(0);    lees la dirección 0 de la memoria que es =0      
      printf(lcd_putc,"%Lu",volumen); y por tanto siempre vas a leer 0  :mrgreen: :mrgreen: :mrgreen:
      delay_ms(500);
      lcd_putc("\f");                      
      }


Además de que por lo que miro solo estas considerando lo  primera parte del código en esta parte cada que el pin_d0=1 incrementa en uno el contador pero en esta parte la variable contador esta alojada en la ram del micro por lógica cuando desconectas el pic se pierde el valor de la misma

« Última modificación: 23 de Febrero de 2010, 20:02:07 por septiembre_negro »


 

anything