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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.