MSP430 im LPM

Gast #1055270
Lesenswert?

Guten Abend,
im LPM3 vom MSP430 ist der CPU inaktiv. Wenn ich im DebugerModus den 
LPM3 aktiviere kann ich trotzdem die nächsten Befehle ausführen(LED 
blinken lassen).
Wenn CPU off ist! Wie werden dann die Befehle ausgeführt? Habe ich 
irgendwie ein Denkfehler? Kann mir bitte Jemanden Das erklären
Danke
#1055472
Lesenswert?

Dazu wird natürlich die CPU aktiviert. Sieht man auch am Stromverbrauch. 
Im Debug-Modus, wenn du Einzelschittbetrieb oder solche Sachen machst, 
übernimmt der Debugger die komplette Kontrolle über die CPU. Wenn du 
nicht debugst, und den LPM3 aktivierst, hält die CPU definitiv an dem 
Befehl an. Erst wenn du durch einen Interrupt die CPU weckst, gehts 
weiter(zumindest in der ISR erst mal).
Gast #1055535
Lesenswert?

Auch nicht im Debug Modus blinkt die LED weiter nach dem einschlaten des 
LPM3.

C Code:
main{
...
LPM3;//
while(1){
LED1_ON;
delay_ms(1000);
LED_off;}
...
}
Irgenwie komisch oder? Wie kann die LED blinken wenn CPU aus ist.
Merken: Alle Interrupts aus.
Persönliche Seite #1055596
Lesenswert?

> Merkst Du was?

Anscheinend war der Zaunpfahl nicht ausreichend groß.

  (SCG1+SCG0+CPUOFF);

Das sind einfach nur ein paar numerische Werte, die Bits im 
Statusregister beschreiben:

#define CPUOFF              (0x0010)
#define SCG0                (0x0040)
#define SCG1                (0x0080)

Allerdings hast Du die Headerdatei nicht richtig gelesen, die von Dir 
erwähnte Macrodefinition ist für Assembler. Die in der gleichen 
Headerdatei vorhandene Macrodefinition für C sieht so aus:

#define LPM3_bits           (SCG1+SCG0+CPUOFF)
#define LPM3      _BIS_SR(LPM3_bits)     /* Enter Low Power Mode 3 */

_BIS_SR() ist eine Funktion, die den übergebenen Wert ins Statusregister 
schreibt.

Damit führt LPM3; sehr wohl das aus, was es soll. Könnte es sein, daß Du 
"nicht im Debug modus" falsch verstanden hast und damit Release- statt 
Debug-Code meinst, Dein Programm aber sehr wohl noch unter Kontrolle des 
Debuggers läuft?

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