Pic18f in Energiesparmodus

Gast #2788913
Lesenswert?

Hallo,
ich habe einen Pic18f von Microchip dieser wird über ein netzteil mit 5V 
versorgt.
wird nun dieses Netzteil abgeschaltet dann erfolgt die versorgung mit 
einer geringeren spannung aus einer Batterie, dabei soll allerdings der 
Mikrocontroller in einen Energiesparmodus gehen, bei der nur noch die 
Uhr weiterläuft, damit man diese nach einem Neustart nicht immer neu 
Stellen muss. wirde das Netzteil wieder eingeschaltet dann soll der
Mikrocontroller normal weiterlaufen.

Nun würde ich gerne wissen, wie ich dies in der Software umsetzen kann.
Hat jemand ein Beispiel für mich?

Vielen Dank
Gast #2788922
Lesenswert?

hi,
also ich würde das mit nem unterspannungsinterrupt lösen.
jedoch musst du an deinen VCC einen groß genugen "puffer" baun, damit 
der µC die Zeit hat in die ISR zu springen und sich sauber runter zu 
fahren.
ob dann aber die Uhr weiter läuft, ist fraglich.
Es gibt controller die dafür extra einen Eingang haben für 
pufferbatterien.
mfg
Gast #2789170
Lesenswert?

Wenn ich das Netzteil ausschalte wird ein interrupt ausgelöst, wenn ich 
allerdings das Netzteil wieder einschalte, dann wird kein interrupt mehr 
ausgelöst. kann mir jemand sagen warum? die Interruptfunktion wir 
aufgerufen:

void high_isr(void)
{
  if(PIR2bits.LVDIF)  HLVD_isr();
}

void HLVD_isr(void)
{
  PIE2bits.LVDIE = 0;  // Interrupt disable
  HLVDCONbits.HLVDEN = 0;
  if(HLVDCONbits.VDIRMAG)
         {                  HLVDCONbits.VDIRMAG = 0;
    fSleep = 0;
  }
  else
  {
    HLVDCONbits.VDIRMAG = 1;
    fSleep = 1;
         }
  HLVDCONbits.HLVDEN = 1;
  while(!HLVDCONbits.IRVST);
  PIR2bits.LVDIF = 0; // Interrupt flag reset
  PIE2bits.LVDIE = 1;// Interrupt enable
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren