Autor Tema: reset atraves de software  (Leído 3731 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: reset atraves de software
« Respuesta #15 en: 10 de Agosto de 2005, 13:00:00 »
El unico problema con esa idea es el de la patilla de control (la q iniciaria el reset), la cuestion es q no creo q el MCLR borre TODOS los registros apart del PC y el stack, recuerden q para el PIC PORTx es un registro.

Si el MCLR no borrara registros (por ende los puertos) y al ser MCLR independient del funcionamiento del programa, pienso q al ejecutar el procedimiento efectivamente se reiniciaria el PIC pero el pin de control se kedaria pegado a nivel alto (o bajo depend d como se haga el reset), kedando el PIC en un reset permanente (el programa no llegaria a ejecutar ni una sola instruccion despues del reset, la instruccion q cambiaria el estado logico del pin de control para detener el reset).

Aun pienso q la idea con el 555 es mejor, ahora si uds disponen de algun circuito q permita hacer un reset con delay y por flanco (con lo cual no importaria el nivel logico y no tndriamos q preocuparnos por un reset perpetuo), entonces esa seria la solucion...

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
RE: reset atraves de software
« Respuesta #16 en: 10 de Agosto de 2005, 13:15:00 »
Tienes razón fenix_in, pero si en el goto Inicio despues del reset, antes de nada colocas las instruciones :

clrf    PORTx ( según el registro que utilices), no se procuce lo que indicas el programa podria quedar así:

ORG   0x00         ;Dirección del vector de reset. goto      Inicio         ;Comienzo del programa una después del vector de interrución.

ORG   0x04         ;Dirección del vector de interrución.
goto   INTERRUP         ;Tratamiento de interupciónes .

Inicio   clrf   PORTC            ;Se borra el puerto C.

Apartir la configuracion de regisros......
Un saludo Carmelo
Todos los días se aprende algo nuevo.

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: reset atraves de software
« Respuesta #17 en: 10 de Agosto de 2005, 16:32:00 »
El problema esta en como garantizar q el micro ejecutara al menos la primera instruccion despues del reset, recuerda q el pin de control esta FIJO por lo tanto podria tener prioridad para el CPU un reset (via MCLR) q el programa en si, admas recuerda que el micro permanece en reset MIENTRAS haya un estado bajo en el pin MCLR, esto implica q el micro NO ejecutara ni sikiera la primera instruccion por lo q no se podra cambiar el estado del pin para que el PIC trabaje normalmente.

Nota: org es una directiva del compilador no del procesador, si compilas ese trozo de codigo t va a dar un error de sobreescritura en direccion 0x00h, admas estas suponiendo que el PIC no tiene nada mas conectado en ese puerto al usar clrf, seria mejor usar un tipo bcf portn, pin_control

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
RE: reset atraves de software
« Respuesta #18 en: 12 de Agosto de 2005, 08:59:00 »
De la forma, de producir el reset, que expuse anteriormente, no se tiene un nivel fijo en el pin MCLR. Sólo de produce un impulso cuya duración puede ser ajustado segun sea el condensador a utilizar.
De esta forma obtenemos un efecto como si activasemos un pulsador a la patilla de MCLR. Por lo que el nivel bajo sólo queda en ese estado un breve periodo de tiempo.
He compilado el programa y siempre funciona correctamente, sin dar ningun error y en cuanto a la instrucción "clrf PORTx", sólo la puse a nivel de ejemplo para indicar que se puede borrar todo el registro, pero com bien dices fenix, se puede utilizar las instrucciones que indicas, dado que ambas funcionan.

Un saludo Carmelo
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
RE: reset atraves de software
« Respuesta #19 en: 12 de Agosto de 2005, 09:16:00 »
Hola Radon:
Creo que si se puede utilizar, siempre y cuando solamente se produzca un pulso a nivel bajo en la patilla MCLR. Más o menos es la conexión que puse en un post anterior, pero utilizando una puerta NAND y el control de esa puerta realizado por un pin del propio micro.
Carmelo
Todos los días se aprende algo nuevo.


 

anything