www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC in Sleep mode


Autor: Virus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weiss jemand was für eine Header-Datei ich in C includen muss um für den 
PIC die Funktion sleep() aufzurufen?

Autor: Christian J. (elektroniker1968)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
???

Verstehe ich nicht. Beim CCS Compiler ist die Funktion so schon drin. 
Ansonsten einfach mit

#asm
   sleep
#endasm

einbinden. Und dran denken, dass Sleep nur ausgeführt wird, wenn 
bestimmte Bedingungen erfüllt sind (siehe Manual), sonst wird es als NOP 
interpretiert.

Autor: Virus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab den HI-TECH PICC C-Compiler. Finde da nichts.

sleep(); geht nicht :-(

Autor: Virus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Und dran denken, dass Sleep nur ausgeführt wird, wenn
>bestimmte Bedingungen erfüllt sind (siehe Manual), sonst wird es als NOP
>interpretiert.

If the global interrupts are disabled (GIE is
cleared), but any interrupt source has both
its interrupt enable bit and the corresponding
interrupt flag bits set, the device will
immediately wake-up from SLEEP. The
SLEEP instruction is completely executed.


Meinst du das? Sonst finde ich keine bestimmten Bedingungen. Ausser beim 
aufwachen...

Autor: Virus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, der zieht jetzt etwa 1mA. Ist das Sleep Mode, oder wie viel Strom 
zieht der im Sleep Mode?

Autor: Chris None (lamda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also:

#include <pic.h>

SLEEP();

Autor: Virus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke!

Aber wie bringe ich den Stromverbrauch noch weiter runter?

Habe jetzt alle nichtverwendeten Pins als Output definiert, verbraucht 
aber immer noch 0.8 mA!

Autor: Virus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ADC ausschalten?

ANSEL = 0x00;

geht nicht -> undefined identifier "ANSEL"

WTF???

Autor: Christian J. (elektroniker1968)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

sind etwas wenig Infos, zB ist der PIC typ auch interessant. 0,8ma ist 
auf jeden Fall zuviel, da fliesst noch was über die Ports ab. Schalte 
die auf Hi-Z.

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian J. wrote:

> Schalte die auf Hi-Z.

Dann braucht der PIC erst recht Strom!

Autor: Virus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist ein pic12f629.

Wie schalte ich die auf HI-Z? Einfach als Output definieren reicht 
nicht?

wieso geht ANSEL = 0x00; nicht?

Autor: Thomas Müller (thomas1123) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
datenblatt s.43
ADON = 0;
oder
ADCON0  = 0x00;

Autor: Virus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ADCON0 = 0x00;

-> undefined identifier "ADCON0"

Obwohl ich die header-datei eingebunden hab.

CMCON = 0x07;

-> Kein Problem

Autor: Thomas Müller (thomas1123) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ADCON"null" = 0; das 2te is nen null und kein O
an sonsten binde doch noch die htc.h ein

Autor: Virus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, da war noch was an den Eingängen! Jetzt bin ich bei 0.3mA!

Aber ADCON0 = 0; (ja NULL!)

Keine Ahnung wieso.
pic.h
htc.h

sind eingebunden!!

Alles andere ging auch (Timer 0, Timer1, Eingäng konfigurieren usw.)!

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau nochmal in das Datenblatt für den PIC, da sollte es unter 
"Electrical Specifications" eine Liste für den Stromverbrauch im 
SLEEP-Mode geben.

Hatte grad nur das PIC12F683er Datenblatt da:
Watchdog-Timer: 8.4µA
BrownOut Detector: 109µA
Analog Comparator: 60µA
Interne Vref: 138µA
Oszillator für Timer1 (Uhrenquarz): 10µA
A/D Converter: 0.0029µA

(alle Werte bei 5V)

Jetzt raussuchen was nicht gebraucht wird, das abschalten, und in den 
Sleep-Mode gehen.

Autor: Virus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, mein Problem ist ja nur das ich den ADC nicht ausschalten kann!

Bringts dieser Brown Out Detector??

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.