Autor Tema: Luchando contra el ruido POR SOFTWARE  (Leído 144523 veces)

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

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18271
    • MicroPIC
Re: Luchando contra el ruido POR SOFTWARE
« Respuesta #60 en: 26 de Octubre de 2007, 04:31:46 »
¿Quién sabe?, lo mismo eso con el nivel 11 de optimización te lo hace el compilador automáticamente ;-)

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5538
    • Picmania by Redraven
Re: Luchando contra el ruido POR SOFTWARE
« Respuesta #61 en: 26 de Octubre de 2007, 05:14:18 »
No tienes tú guasa, ni ná. Ja, ja, ja  :D :D :D
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado visenri

  • PIC10
  • *
  • Mensajes: 1
Re: Luchando contra el ruido POR SOFTWARE
« Respuesta #62 en: 28 de Octubre de 2007, 13:19:22 »
Hola, nocturno y cia, este es mi primer mensaje en este foro y he pensado que podía aportar algo a este post.

Alimentación:

Sobre el tema de ruido en la alimentación, no hay demasiado misterio, siempre filtro la alimentación con condensadores de 100n cerca de cada integrado digital y hasta el momento 0 problemas.

Asimismo siempre es aconsejable al hace el rutado de la placa separar la pistas por las que circule potencia de las que sean para la lógica, cada una por su lado, así evitamos que haya caidas de tensión que afecten a la lógica.

También es importante evitar un rutado largo en la masa que va a los condensadores del cristal del pic (por experiencia se que puede provocar efectos indeseados en el oscilador).

En los accionamientos de relés y motores colocar siempre los correspondientes diodos, y si son de alterna los varistores adecuados o un par de diodos zéner en serie y al revés (una vez por culpa de un abrepuertas de alterna mal filtrado el PC saltaba a donde le daba la gana, fue poner el varistor y desaparecer el problema, los picos de tensión al desconectar radiaban al espacio tal interferencia que era capaz de actúar sobre el PIC).

Entradas y salidas:

Yo no uso filtrado casi nunca ni en salidas ni en entradas digitales, lo que hago es siempre (siempre que esa entrada dependa de un pulsador, o una señal externa al circuito) filtrar por software mediante contadores el estado de las entradas digitales, de forma que sea inmune a rebotes rápidos.

En las entradas analógicas uso un promediado emulando una red RC:
 Valor = Valor + (Valor_act - Valor)/K
con algún truco matemático para hacerlo rápido con enteros y no perder resolución.
El valor valor de la frecuencia de filtrado depende de la frecuencia con la que se llame a la función y de la constante K.

Puede que si sea necesario filtrar la entrada analógica si pueden presentarse problemas de aliasing debido a que la frecuencia de variacion de la entrada supere a la mitad que la de muestreo.

Eeprom:

Sobre lo de la Eeprom nunca he tenido problemas (aunque tampoco he usado mucho), pero los problemas que ha tenido la gente normalmente se deben a usar PIC16F84 sin circuito de reset, y es que estos pic no tienen BOD, es decir si  baja un poco la tensión y vuelve a subir ni se enteran, pero puede provocar efectos inesperados en el chip, yo usaba un circuito específico para el reset conectado a la patilla MCLR, pero ahora uso el PIC16F628A en donde usaba el PIC16F84, ya que es más barato y lleva muchas más cosas, entre ellas el BOD.

Cuelgues:

Sobre lo de que el programa se quede colgado, se que debería usar más el WDT, pero no suelo tener necesidad porque siempre hago los programas con un programa ciclico que ejecuta una máquina de estados en vez de esperar a que terminen eventos fijos para continuar, es menos legible pero mucho más potente, seguro y eficiente.

Por ejemplo, casi nunca uso transmisión y recepcion serie sin interrupciones, uso un buffer que lleno en el programa cíclico cuando quiero enviar algo (cosa que finaliza instantáneamente) y que se envia al ritmo serie con la interrupción.
Igual para la recepción, los datos se llenan en otro buffer en la interrupción serie y en el programa cíclico se comprueba si ha llegado un dato nuevo, cuando se tiene una trama completa o se dispara un timeout (por pérdida de datos), se ejecutan las acciones adecuadas.

Lo que quiero decir es que el programa cíclico nunca para, de forma que no hay cuelgue nunca, normalmente el programa cíclico se ejecuta en un tiempo relativamente corto, dependiendo de lo complejo de la aplicación, desde unos pocos us hasta varios ms.

Inicialización de variables:
Uso el compilador de C de Hi-tech y creo que por defecto inicializa toda la ram a 0.

Aún así suelo asegurarme de inicializar todo al inicio, a mi cuando me enseñarón C me dijeron que no puedes dar por sentado el valor de nada si no se lo asignas expresamente. ¿Es verdad que el ansi C obliga a inicializar las variables a 0 como ha dicho alguien?, yo diría que no a menos que se indique en la declaración:

Int Ic = 0;

Vaya tocho para ser el primer mensaje  :D.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5538
    • Picmania by Redraven
Re: Luchando contra el ruido POR SOFTWARE
« Respuesta #63 en: 28 de Octubre de 2007, 14:51:19 »
Buen tocho y muy buenas las ideas que contiene.

Sé bienvenido a este nuestro, tu, Foro, amigo visenri. Que seas feliz en él y nosotros contigo.

Con respecto a tu post comentarte que yo tampoco pongo nunca el WD hasta estar absolutamente seguro, en lo posible que todo es relativo, así que tras algunos meses con el firmware funcionando correctamente activo un WD relativamente largo, de un par de segundos y pongo un único restart_wachtimer() en el bucle main(). A modo de "para por si acaso"  :mrgreen:
« Última modificación: 28 de Octubre de 2007, 14:58:49 por RedPic »
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Luchando contra el ruido POR SOFTWARE
« Respuesta #64 en: 28 de Octubre de 2007, 14:57:37 »
Hola visenri, antes de nada bienvenido al foro. Gracias por tu aporte, es muy interesante y se viene a sumar a las experiencias de otros foreros. Poco a poco se van conformando las puntos esenciales para eliminar el ruido. Respecto de tu post que es muy completo, solo comentarte dos cosas que creo son de interés: la primera es que las entradas digitales se deben de filtrar con un filtro paso bajo, sobre todo si se esta en un ambiente ruidoso y la longitud de los cables del actuador es grande. La segunda es que los programas muchas veces se pueden bloquear por ruidos entre otras causas y originar un bucle en le que se queden cerrados, independientemente a como lo hayas programado, es por ello que el wachdog es conveniente ponerlo y así estar a cubierto de estas posibles contingencias.

Un saludo y de nuevo bienvenido.

PD.: Se me ha adelantado el amigo Diego.
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Luchando contra el ruido POR SOFTWARE
« Respuesta #65 en: 14 de Noviembre de 2007, 09:10:57 »
Visenri bienvenido al foro, siempre es bueno que la gente aporte conocimiento y aquí no se compite por mucho o por poco, sino por contribuir al conocimiento global del grupo.


En cuanto a lo estrictamente técnico, yo no dejaría tan de lado lo de la alimentación, es más te diría que 'depende' del tipo de aplicación que construyas.  Si hablas de un prototipo de laboratorio es una cosa, pero si hablamos de una placa que irá colocada en un tablero eléctrico junto a contactores, relés de estado sólido, etc, entonces los ruidos eléctricos y magnéticos son importantes y no se van con un simple capacitor.

El filtrado de entradas por software funciona cuando el ruido es eléctrico de cierto nivel pero un opto aisla no solo ruido eléctrico (de hecho el fotodiodo actúa como un pasabajo) sino que nos da un margen de aislación de unos cuantas decenas/centenas/millares de voltios.

Para una entrada analógica la sensibilidad es aún mayor y los cuidados también mayores porque no solo que hay que filtrar sino que hay que tener velocidad de respuesta.

En cuanto a la eeprom, las de los pics no son mejores que cualquier otra eeprom y por ende sufren de los mismos problemas.  Tal vez las has usado poco.  A mi los problemas me aparecieron con un cliente con un board no diseñado por mí, el ruido provenía de las conexiones, al encender el sistema el sobrepico de la fuente borraba las eeprom.  Por ello nuevamente filtrar la alimentación y MCLR son muy buena idea.

Lo del WDT coincido en que no hay que ser un maniático en su uso, sobre todo en el laboratorio pero sí hay que usarlo si se quiere mandar un equipo 'fuera'.  El software es determinístico (podemos prever su funcionamiento al 100%), el harware no y por ende el WDT a mi modo de verlo debiera estar siempre habilitado al mandar un equipo para alguna parte.

Nuevamente bienvenido y espero tengas una larga vida y aportes en el foro, verás que acá encontrarás solo amigos y no enemigos.  :) :)
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Re: Luchando contra el ruido POR SOFTWARE
« Respuesta #66 en: 28 de Diciembre de 2007, 04:35:05 »
Hola que tal, estuve revisando esto porque la verdad tengo un problema igualito a este... Hice está rutina, pues la encontre en el CCS y bueno el WDT no se me desborda y la verdad no se porque, ya he leido y he hecho de todo... Ya no se que hacer... otra cosa es que cada vez que enciendo el circuito pues me aparece el reset por causa del PUT siempre, y no se quita!!! que creen que sea esto...??? AYUDA!!! POR FAVOR, ya me estoy arrancando los cabellos por causa de esto... aquí está el codigo si lo quieren revisar... Por cierto estoy trabajando en C del CCS con el 18F4550...

#include <18f4550.h>
#fuses XT,WDT,NOPROTECT,NOCPD,LVP,VREGEN,NOPBADEN,INTRC_IO,MCLR,BROWNOUT_SW,BORV20
#use fast_io (A)
#use fast_io (B)
#use fast_io (C)
#use fast_io (D)
#use delay(clock=4000000,restart_wdt)
#byte RCON=0xFD0
#bit SBOREN=RCON.6
#bit IPEN=RCON.7
#bit POR=RCON.1
#bit TO=RCON.3                                      // Bit de la bandera del Perro Guardian
#bit BOR=RCON.0                                     // Bit de la bandera del Brown Out Reset

void main(void)
{
SBOREN=1;
IPEN=0;
set_tris_b (0x0F);                                  // Configura puerto b como entrada y salida
         set_tris_d (0x00);                         // Configura puerto d como salida
         set_tris_a (0xF0);                         // Configura los pines RA6 - RA4 como entradas y RA3 - RA0 como salidas
         set_tris_c (0x00);                         // Configura puerto c como salida
         output_c (0x00);                           // Limpio el puerto C
         output_b (0x00);                           // Limpio el puerto B
         output_d (0x00);                           // Limpio el puerto d
         output_a (0x00);                           // Limpio el puerto A

         output_c(0x01);

switch(restart_cause())
   {
      case WDT_TIMEOUT:
      {
         output_d(0x73);
         break;
      }

      case NORMAL_POWER_UP:
      {
         output_d(0x01);
         break;
      }
      case MCLR_FROM_RUN:
       {
         output_d(0x39);
         break;
       }

      case BROWNOUT_RESTART:
       {
         output_d(0xFC);
         break;
       }
   }
   if(restart_cause()==12)
   {
       output_d(0x72);
   }
   setup_wdt(WDT_ON);
   while(TRUE)
   {
      restart_wdt();
   }

}


Atte: Enigma... La llanerita de Guayana :?
No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18271
    • MicroPIC
Re: Luchando contra el ruido POR SOFTWARE
« Respuesta #67 en: 28 de Diciembre de 2007, 04:42:34 »
Si pones esto es materialmente imposible que desborde el perro:

   while(TRUE)
   {
      restart_wdt();
   }

Estás continuamente refrescándolo.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5538
    • Picmania by Redraven
Re: Luchando contra el ruido POR SOFTWARE
« Respuesta #68 en: 28 de Diciembre de 2007, 08:33:06 »
Como dijo Jack el Destripador: ¡Vayamos por partes¡!

Solo con los fuses tenemos para escribir una novela.

#fuses XT, WDT, NOPROTECT, NOCPD, LVP, VREGEN, NOPBADEN, INTRC_IO, MCLR, BROWNOUT_SW, BORV20

LVP es mas peligroso que un tigre en tu dormitorio. En cuanto detecte 5V entra en modo programación. Usa NOLVP salvo que estés programando a bajo voltaje.

WDT sin Postscaler hace que el Reset por desbordamiento sea realmente rápido, quita WDT y empieza por WDT512 o WDT1024, después puedes ir disminuyendo el postscaler hasta que veas donde ocupas mas tiempo. Yo acostumbro a ponerlo muuuuy largo el tiempo del guardián y después lo ajusto a tiempo máximo de mi rutina mas larga (sin reestablecer el contador del Watch Dog).

Tienes también los fuses BROWNOUT_SW y BORV20. El primero anula al segundo y sirve para que tu mismo programa realice on-line el control del BOR.  Utiliza solo una combinación del estilo BROWNOUT,BORV43

INTRC_IO y XT son mutuamente excluyentes. O XT para un Cristal Externo menor o igual a 4 Mhz ó INTRC_IO para el oscilador interno pero no los dos al mismo tiempo.

VREGEN Activa el regulador de voltaje para el USB, si no estas usando el USB no te hace falta (Sobre todo si no tiene puesto el condensador en VUSB, patilla 18 del 18F4550, que le hace falta para realizar dicha regulación)

Conclusión: Pon unos fuses del estilo que te propongo mas abajo y prueba ...

#fuses XT, WDT512, NOPROTECT, NOCPD, NOLVP, NOPBADEN, MCLR, BROWNOUT, BORV43, NODEBUG

Y sobre todo Datasheet, mucho Datasheet.  :mrgreen:



« Última modificación: 28 de Diciembre de 2007, 08:35:52 por RedPic »
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Luchando contra el ruido POR SOFTWARE
« Respuesta #69 en: 28 de Diciembre de 2007, 11:19:15 »
AllDatasheet !!! :D :D :D
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Re: Luchando contra el ruido POR SOFTWARE
« Respuesta #70 en: 28 de Diciembre de 2007, 12:34:20 »
Hola muchachos, Gracias, muchas gracias por su gentil colaboración.... Lo del perro Guardian me ha funcionado muy bien.... Y no crean que no he leido el datasheet, si lo he leido, pero probablemnte he tenido una mala interpretación del mismo... he aquí mis explicaciones de algunas de mis acciones:

Cita de: Nocturno
Si pones esto es materialmente imposible que desborde el perro:

   while(TRUE)
   {
      restart_wdt();
   }

Estás continuamente refrescándolo.

Aqí si me hice un nudo... lo quite y me funciono el perro a los 2:12seg, es el tiempo al que lo queria muy bien... pero, el restart_WDT(), lo coloque porque en la ayuda del CCS, me dice que hay que restaurarlo...miren

"Restarts the watchdog timer.  If the watchdog timer is enabled, this must be called periodically to prevent the processor from resetting. 
The watchdog timer is used to cause a hardware reset if the software appears to be stuck.
The timer must be enabled, the timeout time set and software must periodically restart the timer."...

Se me contradicen las ideas...  :?


Cita de: REDPIC
WDT sin Postscaler hace que el Reset por desbordamiento sea realmente rápido, quita WDT y empieza por WDT512 o WDT1024, después puedes ir disminuyendo el postscaler hasta que veas donde ocupas mas tiempo. Yo acostumbro a ponerlo muuuuy largo el tiempo del guardián y después lo ajusto a tiempo máximo de mi rutina mas larga (sin reestablecer el contador del Watch Dog).

Jejeje, el tiempo en que se me desborda aquí solito es el perfecto, 2min con 12seg.... Pero gracias a tu valioso a porte ya se me desborda fino!! jejeje :-)

Cita de: REDPIC
Tienes también los fuses BROWNOUT_SW y BORV20. El primero anula al segundo y sirve para que tu mismo programa realice on-line el control del BOR.  Utiliza solo una combinación del estilo BROWNOUT,BORV43

jejeje aquí fue por que me confundi de combinación.... jejeje ahorita es que me vengo a dar cuenta! rayos! Gracias por la observación amigo!!!

Ahora el set de preguntas.... (es que soy nueva, y pues bueno el datasheet ayuda, pero hay muchas cosas que me dejan así :shock:)

1.) El LVP: Umm.... Bueno, este, estuve buscando en internet lo que significa esto... y sólo me dice que sirve para programar varios pics al mismo tiempo.... Hay un concepto mejor que este... :(... Que es Modo programación, y disculpen mi ignorancia.... :(

2.) Porque el circuito cuando lo enciendo me indica siempre un reset por POWER UP Timer....???

3.) BROWNOUT_RESTART: esto es el BOR??

4.) ¿Cómo devuelvo una respuesta de reseteo por el POR?, no hay un caso para el...? o sólo pregunto por el bit del mismo???

Hasta ahora estás son las preguntas.... jijijii
 :mrgreen:


Atte: Enigma... La llanerita de Guayana :?

« Última modificación: 28 de Diciembre de 2007, 12:52:00 por Enigma »
No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18271
    • MicroPIC
Re: Luchando contra el ruido POR SOFTWARE
« Respuesta #71 en: 28 de Diciembre de 2007, 13:21:39 »
Lo de restaurar el wdt dependerá de lo que tú quieras. Si quieres restaurarlo, porque no quieres provocar un reset en tu micro, tendrás que poner restart_wdt.
Si lo que quieres es precisamente provocar un reset, no lo pongas y verás como el perro le da un meneo a tu micro y lo hace arrancar de nuevo.
Te dije que lo quitaras porque precísamente estabas buscando que el perro reseteara a tu micro. Lo habitual es dejarlo puesto en el bucle principal de tu programa.

El LVP, como te dice Diego, permite meter el micro en modo programación de bajo voltaje. Eso permite utilizar un programador que no levante 13V para reprogramar al micro.

Si no quieres que te marque el PowerUp Timer al arrancar, desactiva el fuse PUT con NOPUT.

El Brownout provoca un reset del micro cuando la tensión cae por debajo de determinado nivel, evitando que el micro se comporte como si hubiera bebido demasiado.

No entiendo tu pregunta acerca de "Devolver una respuesta por POR"

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Luchando contra el ruido POR SOFTWARE
« Respuesta #72 en: 28 de Diciembre de 2007, 13:27:20 »
aca algo mas sobre lo mismo, jeje :mrgreen:, esque me ganaron :D

1) el LVP significa Low Voltage Programing, lo que quiere decir que si tu programador trabaja con bajo voltaje para la programacion, esto en VPP si no me equivoco que normalmente se programa con 12V, en bajo voltaje programa a 5V. osea depende de tu programador, la mayoria son normalitos, asi que debes usar NOLVP en el fuse, o que programador usas, para grabar el programa al micro??

2) si no me equivoco, el PUT hace que el micro se resetee cuando recien adqueira el nivel de voltaje necesario (transcurrido un pequeño tiempo), tambien es un Fuse, que va PUT ó NOPUT

3) Si

4) esta no me la se :(, o talvez no la entendi muy bien :mrgreen:

haber si ahora va mejor el asunto, y si me equivoqeu en algo que me corrijan los maestros :mrgreen:
.

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Re: Luchando contra el ruido POR SOFTWARE
« Respuesta #73 en: 28 de Diciembre de 2007, 14:00:51 »
Hola Muchachos, bueno primero que nada, Cryn no es más de lo mismo, todo aporte es bueno... al menos para mi :-)...

Cita de: NOCTURNO
Si lo que quieres es precisamente provocar un reset, no lo pongas y verás como el perro le da un meneo a tu micro y lo hace arrancar de nuevo.

Aja, aquí, se supone que despues de un reset, el micro deberia empezar a hacer todo de nuevo cierto.... por teoria y por lo que me dices.... Pues bueno, el programa hace todo lo contrario, apaga todo el circuito y lo deja estático... :( Por ejemplo cuando se ddesborda el perro, o.k, me aparece la P (el valor que yo queria mandar cuando sucediese este evento), pero luego cuando hago un reset por MCLR, pues me sigue apareciendo la P del WDT y no la C de Clear que le digo que aparezca cuando se da este evento...

Cita de: NOCTURNO
Si no quieres que te marque el PowerUp Timer al arrancar, desactiva el fuse PUT con NOPUT.

Pero es que precisamente quiero que me muestre está causa de reset, pero cuando suceda... No todo el tiempo.... O es que el PUT está todo el tiempo...? :?

Cita de: ENIGMA
4.) ¿Cómo devuelvo una respuesta de reseteo por el POR?, no hay un caso para el...? o sólo pregunto por el bit del mismo???

Jejeje a lo mejor no me explique bien :mrgreen:... Lo que quiero decir con esto es que como hago para que el micro detecte está causa del reset... Así como hay
case WDT_TIMEOUT:
case MCLR_FROM_RUN:
case BROWNOUT_RESTART:.... No hay un Case para el POR(Power ON Reset)

Cita de: CRYN
la mayoria son normalitos, asi que debes usar NOLVP en el fuse, o que programador usas, para grabar el programa al micro??

Bueno el programa quemador que uso es winpic800 y el quemador que uso quema el pic a 5V....

Atte: Enigma... La llanerita de Guayana :(

« Última modificación: 28 de Diciembre de 2007, 14:41:21 por Enigma »
No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Luchando contra el ruido POR SOFTWARE
« Respuesta #74 en: 06 de Enero de 2008, 23:08:25 »
Cita de: ENIGMA
Jejeje a lo mejor no me explique bien :mrgreen:... Lo que quiero decir con esto es que como hago para que el micro detecte está causa del reset... Así como hay
case WDT_TIMEOUT:
case MCLR_FROM_RUN:
case BROWNOUT_RESTART:.... No hay un Case para el POR(Power ON Reset)
Creo q es el NORMAL_POWER_UP, no estoy seguro. Depende tambien del pic; mira en su archivo .h (Almenos el pic12f683 lo tiene).


salu2 8)


 

anything