Autor Tema: guardar contador de programa  (Leído 4231 veces)

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

Desconectado sandra_rcb2000

  • PIC12
  • **
  • Mensajes: 92
guardar contador de programa
« en: 03 de Marzo de 2004, 13:15:00 »
Hola como puedo guardar el contador de programa  intentare explicarme un poco mejor lo que pretendo es que cuando el pic pierda la energía ya sea por un fallo en el suministro eléctrico o bien por que asido a propósito con fines de alterar el proceso del programa, al restablecer la energía el pic continué en la ultima instrucción que se quedo y no al principio del programa como ocurre regularmente. Es posible hacer esto
Se que me dirán que el problema se resuelve al poner una batería de respaldo pero  me gustaría no tener que utilizarla para hacer mas económico el proyecto

Desconectado LuisFrino

  • Moderadores
  • PIC16
  • *****
  • Mensajes: 140
    • Electronica Microcontroladores Ilumunacion Decorativa
RE: guardar contador de programa
« Respuesta #1 en: 03 de Marzo de 2004, 19:47:00 »
Hola
por la experiencia que tengo el tema no es facil
cuando el micro recibe alimentacion lo primero que hace es ir al comienzo de la rutina que le fue cargada en el archivo fuente
y de acuerdo a las declaraciones, direcciones,se inicializa
eso ocurrira cada vez que el suministro de energia en este caso
5V sea efectuado
si se corta la alimentacion y los datos no furon guardados en memoria eprom el micro volvera al principio
yo creo que una pequeña bateria (con 3 Voltios Sobra para mantener los datos) no estaria mal.
ademas si se interrumpe la alimentacion no creo que el micro
pueda tener tiempo de guardar los datos
salvo que tenga un gran condensador que almacene la energia suficiente para darle tiempo para guardar datos en eprom

ademas hay que utilizar un bit de un puerto para sensar
el nivel de voltaje para que alerte al micro que ya no hay alimentacion

no se, me parece mas logico tener tension de resguardo en una bateria
no se que otra alternativa te pueden dar otros compañeros del foro
suerte
Luis


Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
RE: guardar contador de programa
« Respuesta #2 en: 03 de Marzo de 2004, 21:27:00 »
Hola, a primera vista, pareceria posible, es decir, el contador de programa PCL es un registro, asi que se podria leer y guardar...

pero aqui un problema, al ir a grabar... ya salto del numero de linea en que estaba!!!, asi que guardara siempre esa direccion...

la otra, seria el tratamiento de rutinas de interrupcion, y guardar ALGUNOS VALORES..., y al reiniciar, mediante la lectura de la eeprom, saltar a la direccion donde estaba....

pero comparto con Luis, agregar una bateria, y sensar el estado de alimentacion... y detener el programa, y que quede donde estaba hasta que retorne la energia....

tendrias que tener una fuente, separada con un diodo, para que la bateria no alimente a los perifericos... solo al pic, y este, al detectar falta de energia, deshabilite las cargas....

espero se entienda...


suerte!

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
RE: guardar contador de programa
« Respuesta #3 en: 04 de Marzo de 2004, 05:58:00 »
Tal como dicen Luis y Norberto, NO es aconsejable guardar el PC del micro para propositos de programacion.
Ademas las rutinas de inicializacion deben ejecutarse en cada reinicio del PIC, para que sepa como debe quedar configurado I/O y perifericos.

Una solucion seria incorporarle programacion por estados, guardando el numero de estado en que estaba el micro en el reset en la eeprom.
Luego tomas este valor de la eeprom y saltas a la posicion de programa inicial de esa rutina.
Para ello debes contar con al menos cumplir dos detalles:
1.- Las rutinas de cada estado deben ser cortas y muy marcadas en cuanto a su funcion (ej: encender una salida, apagar otra, guardar un registro).
2.- Necesitaras tantas rutinas o estados como sea necesario segun la descripcion de la problematica a solucionar.

Como ejemplo te pongo el caso de un abre porton de garage.
Alli tienes varios estados definidos.

En Espera > abriendo > cerrando > parar

Tambien debes identificar cuales son los eventos por los cuales cambiar entre estos estados.

En el caso del ejemplo el pulsador del remoto y los limites de carrera.

Espero no haberte confundido mas...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado pocher

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: guardar contador de programa
« Respuesta #4 en: 04 de Marzo de 2004, 13:24:00 »

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1700
    • winpic800
RE: guardar contador de programa
« Respuesta #5 en: 04 de Marzo de 2004, 13:37:00 »
Hola Sandra , si pudieras usar algun maravilloso 18Fxxx tienen la posibilidad de detectar bajo voltage , tanto con una referencia externa , como interna generando una interrupción .

el registro .
Codigo:

REGISTER 18-1: LVDCON REGISTER

bit 7 bit 0
bit 7-6 Unimplemented: Read as "0"
bit 5 IRVST: Internal Reference Voltage Stable Flag bit
1 = Indicates that the Low Voltage Detect logic will generate the interrupt flag at the
specified voltage range
0 = Indicates that the Low Voltage Detect logic will not generate the interrupt flag at the
specified voltage range and the LVD interrupt should not be enabled
bit 4 LVDEN: Low Voltage Detect Power Enable bit
1 = Enables LVD, powers up LVD circuit
0 = Disables LVD, powers down LVD circuit
bit 3-0 LVDL3:LVDL0: Low Voltage Detection Limit bits
1111 = External analog input is used (input comes from the LVDIN pin)
1110 = 4.5V - 4.77V
1101 = 4.2V - 4.45V
1100 = 4.0V - 4.24V
1011 = 3.8V - 4.03V
1010 = 3.6V - 3.82V
1001 = 3.5V - 3.71V
1000 = 3.3V - 3.50V
0111 = 3.0V - 3.18V
0110 = 2.8V - 2.97V
0101 = 2.7V - 2.86V
0100 = 2.5V - 2.65V
0011 = 2.4V - 2.54V
0010 = 2.2V - 2.33V
0001 = 2.0V - 2.12V
0000 = Reserved



Un abrazo

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
RE: guardar contador de programa
« Respuesta #6 en: 04 de Marzo de 2004, 13:41:00 »
Muyyy interesante lo de ambos, Sisco y Pocher.
Pocher:
Gracias por los enlaces, ya no recordaba que se habia tratado el tema aqui...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado LuisFrino

  • Moderadores
  • PIC16
  • *****
  • Mensajes: 140
    • Electronica Microcontroladores Ilumunacion Decorativa
RE: guardar contador de programa
« Respuesta #7 en: 04 de Marzo de 2004, 19:26:00 »
Hola a todos
hago una pregunta para sacarme la duda
en que momento guardaria el contenido del registro de trabajo
si se corta el suministro y no hay UPS  unidad de potencia suplementaria ??


entiendo que habria que ir guardando los datos a medida que el tiempo de trabajo transcurre no??

suponiendo que el equipo tambien detendria el proceso por los mismos motivos ( falta de energia)

el de sensar con anticipacion el corte de alimentacion no requiere de grandes complicaciones con solo utilizar un bit de un puerto
( o pin para aquellos  que no entienden ) alcanza particularmente veo como un desperdicio utilizar el conversor A/D para detectar un fallo de energia pudiendo poner una simple bateria de pocos pesos  y detener el contador de programa hasta que la energia este restaurada y ahorrar muchas lineas de codigo

es mi parecer y duda
saludos a todos
Luis Frino

Desconectado marmatar

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1220
    • MSTools
RE: guardar contador de programa
« Respuesta #8 en: 05 de Marzo de 2004, 12:13:00 »
Hola Luis...
Si mal no recuerdo, en  el link que pasa Pocher  se solucionó el problema agregando un Capacitor mediano y un diodo para separar alimentaciones.
En  cuanto se detectaba la falta de alimentación general, se procedía a guardar los datos importantes, utilizando el tiempo de descarga del capacitor par ésto, como alimentación de emergencia.

Un abrazo...
marmatar
Lo posible ya está hecho, entonces hagamos lo imposible - Platón

Desconectado LuisFrino

  • Moderadores
  • PIC16
  • *****
  • Mensajes: 140
    • Electronica Microcontroladores Ilumunacion Decorativa
RE: guardar contador de programa
« Respuesta #9 en: 06 de Marzo de 2004, 22:40:00 »
Ok Marcelo
una buena idea y de paso  te despreocupas de andar cambiando la pila de UPS cada tanto
muchos saludos
y buen fin de semana
Luis

Desconectado sandra_rcb2000

  • PIC12
  • **
  • Mensajes: 92
RE: guardar contador de programa
« Respuesta #10 en: 07 de Marzo de 2004, 12:38:00 »
Hola  veo con agrado el interés que a despertado este tema con respecto a los links que tan amablemente me han proporcionado resulta que no los puedo abrir  ya intentare mas tarde.
Y para agregarle mas candela al tema les cuento que mi primera opción fue instalar una batería de respaldo pero un conocido mío me dio la idea de guardar el contador de programa en la eeprom por  supuesto que yo le mencione que no CREI que fuera posible comenzando por que si se intentara salvar al dar la instrucción de salvar el programa el contador ya abría avanzado  y turu ru o chiras pelas como dicen los crios por aquí
Pero ,resulta que este conocido se dedica a la realización de alarmas para auto con fines comerciales y ante mi escepticismo y para callarme la boca me a echo una demostración y resulta que si funciona el maldito pic reinicia exactamente en la ultima instrucción donde se encontraba al perder la energía eléctrica por supuesto que nunca me dirá como lo ase debido a que de ello come el y su familia .solo me queda agregar como consuelo para todos almenos a mi si que el nene que les menciono tiene un icq superior al  promedio  al grado que es considerado un genio el tío es auto disdacta  como todos los genios fue expulsado del colé a temprana edad por que no se sentía adaptado al compartir la clase con una bola de tarados entre los cuales me incluyo

Desconectado pocher

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: guardar contador de programa
« Respuesta #11 en: 07 de Marzo de 2004, 13:46:00 »
Pués dile al "genio" de la lámpara que podría ser más modesto.

Aquí por estos lares no somos tan estiraos, más bien somos de andar en bicicleta, pero bueno una idea de Pepito, otra de Juanito y al final sales ideas tan interesantes como las que descubrirás cuando puedas abrir los enlaces.

¡¡¡ ... y sin cobrar ni nada !!!  ¿ quien dá más ?

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
RE: guardar contador de programa
« Respuesta #12 en: 07 de Marzo de 2004, 14:54:00 »
Hola , yo creo que para una alarma, no es impresindible guardar el contador de programa... solo algunos estados, o banderas, y por logica, luego seguiria en la OPERACION que estaba efectuando, y al decir operacion, me refiero a que puede ser un grupo de in strucciones, y no precisamente la instruccion en que se encontraba...



Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado LuisFrino

  • Moderadores
  • PIC16
  • *****
  • Mensajes: 140
    • Electronica Microcontroladores Ilumunacion Decorativa
RE: guardar contador de programa
« Respuesta #13 en: 08 de Marzo de 2004, 12:18:00 »
Estas en lo cierto ¨wattson¨porque algunas fracciones de segundo pasan cuando tetecta el corte y la supuesta maquinaria sensada sigue por inercia otras gracciones de segundo
ademas el micro no puede hacer dos cosas o mas a la vez
que se entienda esto al mismo tiempo si esta en una no puede estar en otra
no se si me equivoco
Luis

Desconectado sandra_rcb2000

  • PIC12
  • **
  • Mensajes: 92
RE: guardar contador de programa
« Respuesta #14 en: 09 de Marzo de 2004, 14:30:00 »
Hola por fin pude checar los links y la información es muy buena ya tengo lo necesario para comenzar a realizar pruebas como siempre agradezco el tiempo que dedican a responderme un abraso y un beso a todos.


 

anything