Weiss jemand was für eine Header-Datei ich in C includen muss um für den PIC die Funktion sleep() aufzurufen?
??? 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.
>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...
Hmm, der zieht jetzt etwa 1mA. Ist das Sleep Mode, oder wie viel Strom zieht der im Sleep Mode?
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!
ADC ausschalten? ANSEL = 0x00; geht nicht -> undefined identifier "ANSEL" WTF???
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.
Ist ein pic12f629. Wie schalte ich die auf HI-Z? Einfach als Output definieren reicht nicht? wieso geht ANSEL = 0x00; nicht?
ADCON0 = 0x00; -> undefined identifier "ADCON0" Obwohl ich die header-datei eingebunden hab. CMCON = 0x07; -> Kein Problem
ADCON"null" = 0; das 2te is nen null und kein O an sonsten binde doch noch die htc.h ein
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.)!
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.
Ja, mein Problem ist ja nur das ich den ADC nicht ausschalten kann! Bringts dieser Brown Out Detector??
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.