Försätta 12F1847 i sleep mode
Försätta 12F1847 i sleep mode
http://ww1.microchip.com/downloads/en/D ... 01441F.pdf
Hittar inte riktigt hur jag försätter nämnd krets i sleep mode. Jag trodde det var ngt register som sköter just sleep mode. Men det verkar snarare vara så att man tex ska disabla klocka etc. Stämmer detta?
Hittar inte riktigt hur jag försätter nämnd krets i sleep mode. Jag trodde det var ngt register som sköter just sleep mode. Men det verkar snarare vara så att man tex ska disabla klocka etc. Stämmer detta?
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Försätta 12F1847 i sleep mode
Ja, "SLEEP" är en instruktion som ska köras. Den i sin tur
sätter en del register lite hit och dit som behövs...
sätter en del register lite hit och dit som behövs...
Re: Försätta 12F1847 i sleep mode
Det var just den sidan jag kollat själv på.
Kan jag helt enkelt skriva bara
SLEEP;
känns underligt
Kan jag helt enkelt skriva bara
SLEEP;
känns underligt
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Försätta 12F1847 i sleep mode
Står det i databladet kan du räkna med att det är så. Gäller i stort sett alltid.
Re: Försätta 12F1847 i sleep mode
Haha, jag tyckte bara att det för en gångs skull står för tydligt så jag tänkte, nää så enkelt är det inte
Re: Försätta 12F1847 i sleep mode
Om du kör assembler så är som vilken annan instruktion som helst.
Om du kör C så får du kolla din C-manual hur det är löst. Ofta finns
det en funktion som heter just sleep().
Sök även efter "sleep" i databladet. Det finns många stället som
"xxx operation during sleep" o.s.v.
Om du kör C så får du kolla din C-manual hur det är löst. Ofta finns
det en funktion som heter just sleep().
Sök även efter "sleep" i databladet. Det finns många stället som
"xxx operation during sleep" o.s.v.
Re: Försätta 12F1847 i sleep mode
Ja, det går ju också. I XC8 så kan man antingen använde embedded ASM:
#asm
SLEEP
#endasm
Eller använda funktionen:
SLEEP();
#asm
SLEEP
#endasm
Eller använda funktionen:
SLEEP();
Re: Försätta 12F1847 i sleep mode
Dock är det väl inte riktigt så enkelt. Du måste ju ta fram en strategi för hör den ska vakna också! Annars kommer den glatt sova länge =)
Enklast är väl att ha något interrupt som väcker den.
Enklast är väl att ha något interrupt som väcker den.
Re: Försätta 12F1847 i sleep mode
Jo i detta fallet skall den sova länge. Den ska utföra lite uart grejer när den strömsätts. Sen ska den vara sömnig och sova tills man togglar strömmen.
Men ja annars måste den ju väckas.
Men ja annars måste den ju väckas.
Re: Försätta 12F1847 i sleep mode
Aha, ja i så fall kan du ju ställa in så att den stänger av i princip allt. Passa på att stänga av alla periferi-enheter innan, ifall de inte stängs av automatiskt.
Re: Försätta 12F1847 i sleep mode
Det var ingen dum ide, ska prova se om det gör ngn skillnad. Just nu drar hela kortet 130uA i sleep.
- Magnus_K
- EF Sponsor
- Inlägg: 5854
- Blev medlem: 4 januari 2010, 17:53:25
- Ort: Skogen mellan Uppsala-Gävle
Re: Försätta 12F1847 i sleep mode
Se om du kan dimensionera om, eller eventuellt deaktivera, pull-ups också.
Kanske självklart, men ville bara nämna det.
Kanske självklart, men ville bara nämna det.
Re: Försätta 12F1847 i sleep mode
Det finns en spänningsdelare på 2x1Mohm som används för batteristatus, dock bidrar den med rätt lite.
Kortet är mestadels icke strömsatt och då ligger det på ca 5uA förbrukning pga av spänningsdelaren. Vilket ger ca 5 års batteritid. Helt ok
Kortet är mestadels icke strömsatt och då ligger det på ca 5uA förbrukning pga av spänningsdelaren. Vilket ger ca 5 års batteritid. Helt ok