Forum: Mikrocontroller und Digitale Elektronik Operationen im Sleep modus PIC 16F877


von Bernhard Schwaerzler (Gast)


Lesenswert?

Hallo,

ich habe folgendes Problem: Ich möchte während der PIC im sleep Modus 
läuft einen CO2 Sensor auslesen (AD Eingang). Weiters sollte ich den 
eingelesenen Wert mit einer anderen Zahl vergleichen und je nach 
Ergebnis einen Interrupt auslösen. Und das alles im Sleep Modus

Ist eine Vergleichsoperation im Sleep Modus möglich?

Kann mir jemand helfen?

mfg Bernhard Schwaerzler

von Frank B. (frank_b) Benutzerseite


Lesenswert?

Ich kenne die PICs nicht, aber qwnn er auch einen Analogkomparator hat, 
könnte es klappen, indem Du das Signal zusätzlichen auf diesen gibtst, 
und mit einer Vergleichsspannung vergleichst.

Ansonsten ister der SLEEP-Modus zum schlafen da, wie der Name schon 
sagt. Da läuft das Programm nicht.

Jedenfalls bei AVR's :-)

lg, Frank

von Falk B. (falk)


Lesenswert?

@ Bernhard Schwaerzler (Gast)

>Ist eine Vergleichsoperation im Sleep Modus möglich?

Ich kenn den PIC nicht im Detail, ich würde aber mal sagen das geht 
nicht. Entweder die CPU pennt oder nicht. Dein Probelem löst man eher 
so.

ADC Starten
Sleep mode aktivieren
ADC ist mit Messung fertig und generiert einen Interrupt, CPU wacht auf.
CPU liest ADC und vergleicht
Zurück zum Anfang.

Siehe Sleep Mode, auch wenn es auf den AVR bezogen ist.

MFG
Falk

von Bernhard Schwaerzler (Gast)


Lesenswert?

Hallo Frank,

Danke für deine Antwort

Ich lese den Sensor bereits über einen AD Eingang ein. Dies funktioniert 
auch einwandfrei.
Nur sollte ich das Ergebnis im Sleepmodus vergleichen.

Die Frage ist ob ich das im Sleepmodus überhaupt kann?

mfg Bernhard Schwärzler

von Dieter W. (dds5)


Lesenswert?

Im sleepmodus können manche on-chip peripherals (wie z.B. der A/D 
Wandler) arbeiten, aber die Ausführung von Programmcode ist dabei nicht 
möglich.

von Frank B. (frank_b) Benutzerseite


Lesenswert?

Hat das Ding auch einen Komparator ?

von Bernhard Schwaerzler (Gast)


Lesenswert?

ja der PIC 16F877 hat 7 analoge eingänge

von Frank B. (frank_b) Benutzerseite


Lesenswert?

Also nicht :-)

Nö, dann kann man wohl nichts machen.

von holger (Gast)


Lesenswert?

The following peripheral interrupts can wake the device
from SLEEP:

7. USART RX or TX (Synchronous Slave mode).
8. A/D conversion (when A/D clock source is RC).

Da stehts doch. Du kannst den PIC nach einer AD conversion
wecken, deinen Vergleich machen und wieder schlafen legen.

von Frank B. (frank_b) Benutzerseite


Lesenswert?

Er will den PIC ja grade NICHT wecken ?!?

Frank

von holger (Gast)


Lesenswert?

>Er will den PIC ja grade NICHT wecken ?!?

Ich weiss. Vieleicht hat er seine Aufgabenstellung
einfach nur falsch verstanden.

>Ich möchte während der PIC im sleep Modus
>läuft einen CO2 Sensor auslesen (AD Eingang).

Geht. Siehe Kapitel A/D Operation During SLEEP

>Ist eine Vergleichsoperation im Sleep Modus möglich?

Geht nicht. Dazu muss der PIC aufwachen, Vergleich durchführen.

von Frank B. (frank_b) Benutzerseite


Lesenswert?

Hm.

oder, wenn ein bischen externe Beschlatung erlaubt ist, das Signal 
zusätzlich auf einen Transitor (oder OP-Ampp..oder ähnlich) geben, der 
dann einen externen Interrupt triggert.

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
Noch kein Account? Hier anmelden.