Autor Tema: donde coloco el Watch Dog pic12f675  (Leído 1801 veces)

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

Desconectado gomdryyy

  • PIC10
  • *
  • Mensajes: 15
donde coloco el Watch Dog pic12f675
« en: 24 de Enero de 2009, 18:03:34 »
hola estimados amigos, pues nuevamente estoy con dudas, a pesar de que se que el wdt, se usa para resetear el pic, por si se cuelga este, pues solo lo he podido poner a resetearse cada 2304MS, y bueno la verdad es que quiero que despues de cada retardo, si se colgara, pues que de inmediato se reiniciara, pero no lo he logrado,  asi que recurro austedes, para que me den ideas de como se lograria, les adjunto mi codigo, gracias de antemano y estamos en contacto.

Código: [Seleccionar]
#include <12F675.h>

#FUSES WDT                    //No Watch Dog Timer
//#FUSES INTRC_IO                 //Internal RC Osc, no CLKOUT
#FUSES NOCPD                    //No EE protection
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOMCLR                     //Master Clear pin enabled
#FUSES NOPUT                    //No Power Up Timer
#FUSES BROWNOUT                 //Reset when brownout detected

#use delay(clock=4000000)



int cont = 1;
void main()
{
   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_OFF);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_comparator(NC_NC);
   setup_vref(FALSE);
   
   setup_wdt(WDT_2304MS);
   
      output_low(PIN_A0);   
      output_low(PIN_A1);
      output_low(PIN_A2);
      output_low(PIN_A4);
      output_low(PIN_A5);
      delay_ms(100);
   // TODO: USER CODE!!
    do
    {
    restart_wdt();  // aca se resetea el picccccccccccccccc

    if (cont == 1){
    if(!input(PIN_A3)){         //¿Se ha pulsado boton Configuracion?
         while(!input(PIN_A3)){}   //SI -> elimina rebotes pulsador...   
         cont = 3;
     delay_ms(1000); 
     
     output_high(PIN_A0); //encendido de pantalla 1
     delay_ms(10000); //?????? se supone que despues de este retardo, si se colgara el pic, se tendria que resetear por el wdt


     output_high(PIN_A1); // encendido de pantalla 2     
     delay_ms(10000);//3000 
     output_high(PIN_A2);  //encendido de regulador y control de pantalla
     delay_ms(3000);
     output_high(PIN_A4); // encendido de computadora alto
     delay_ms(1000);
     output_low(PIN_A4); // encendido de computadora bajo
     delay_ms(15000);
     output_high(PIN_A5);   // encendido de bocinas (futuro)       
    }  //fin de if
    }//fin de cont = 1   
    else if (cont == 3){
        if(!input(PIN_A3)){         //¿Se ha pulsado boton Configuracion?
         while(!input(PIN_A3)){}   //SI -> elimina rebotes pulsador...   
         cont = 1;
     output_low(PIN_A5); //apagado de bocinas (futuro)
     delay_ms(1000);
     output_high(PIN_A4); // apagado de computadora alto
     delay_ms(2000);
     output_low(PIN_A4);   //apagado de computadora bajo
     delay_ms(20000);//3000 
     output_low(PIN_A2);  //apagado de regulador y control de pantalla
     delay_ms(10000);
     output_low(PIN_A1);  //apagado de pantalla 2
     delay_ms(10000);
     output_low(PIN_A0);   //apagado de pantalla 1       
    }  //fin de if   
    } //fin de ese if cont =3   
   }while(true);//fin de bucle infinito
}//fin de main


se aceptan sugerencias y modificaciones graciassssssssssssss

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: donde coloco el Watch Dog pic12f675
« Respuesta #1 en: 25 de Enero de 2009, 15:08:34 »
para que en los delays no se reinicio puedes colocar

#use delay(clock=4M,RESTART_WDT)

eso hace que en los delay_ms delay_us el wdt se ande refrescando solo y ya tu solo te preocupas de ver que lugar es el adecuado para colocar los refresh manualmente

con la sentencia en el use garantizas que no se va colgar en los delays que coloques
.

Desconectado gomdryyy

  • PIC10
  • *
  • Mensajes: 15
Re: donde coloco el Watch Dog pic12f675
« Respuesta #2 en: 26 de Enero de 2009, 16:15:36 »
muchisimas gracias Cryn , eso es lo que nececitaba, gracias por tu consejo, ya que hay muchas cosas que se olvidan, sobre todo que no siempre estoy programando, soloo de ves en cuando gracias si me resultooooooooo

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: donde coloco el Watch Dog pic12f675
« Respuesta #3 en: 26 de Enero de 2009, 16:34:34 »
que bien que te haya servido, a seguir programando :mrgreen:
.


 

anything