Forum: Mikrocontroller und Digitale Elektronik MSP430 LPM4 wacht viel zu schnell auf


von Michael (Gast)


Lesenswert?

Hallo zusammen,

anbei ein Stück Sourcecode, welches den MSP430 in den LPM4 versetzt.
Löst man über einen Schalter ( P3.0) einen Interrupt aus, wird der 
Ausgang P 3.1 HIGH und gleich wieder LOW.

Am Oszilloskop kann ich sowohl das Interrupt Ereignis, als auch den HIGH 
Low Pegel sehen. Soweit funktioniert das. Allerdings benötigt der MSP430 
zum aufwachen nur 10 µs. Laut Datenblatt sollten das aber 300µs sein?

Jemand eine Idee warum das so ist?
1
#include <msp430.h>
2
int main(void)
3
{
4
  //Initialize stage
5
6
  // Stop watchdog timer
7
  WDTCTL = WDTPW + WDTHOLD;
8
9
  // Defines Ports
10
  //Configure P3.1 Out for Measurement
11
  P3DIR |= BIT1;
12
  P3OUT &= ~BIT1;
13
14
  //Initialize Switch S1
15
  P3OUT &= ~BIT0;
16
17
  // P3.0 Lo/Hi edge
18
  P3IES &= ~BIT0;
19
20
  // P3.0 interrupt enabled
21
  P3IE |= BIT0;
22
23
  // P3.0 IFG cleared
24
  P3IFG &= ~BIT0;
25
26
  // P3.0 Pull-Down Resistor
27
  P3REN |= BIT0;
28
29
   for(;;)
30
   {
31
     __bis_SR_register(LPM4_bits + GIE);
32
   }
33
}
34
35
// Port 3 interrupt service routine
36
#pragma vector=PORT3_VECTOR
37
__interrupt void Port_3(void)
38
{
39
  //Set TEST PIN P3.1/A13 = HIGH
40
  P3OUT |= BIT1;
41
42
  //Clear Interrupt Register
43
  P3IFG &= ~BIT0;
44
45
  //Set TEST PIN P3.1/A13 = LOW
46
  P3OUT &= ~BIT1;
47
}

Beste Grüße,
Michael

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Michael schrieb:
> Laut Datenblatt

Welcher MSP430? Da gibt es ziemlich viele ...

von Michael (Gast)


Lesenswert?

Da hast du recht :-D

Der MSP430FR5729

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Und wo siehst Du da 300 µs?

Die Tabelle 5.19 gibt typ. 78 und max 120 µs an.

Das ist allerdings immer noch deutlich mehr als die von Dir ermittelten 
10 µs, so daß der Verdacht naheliegt, daß Dein µC gar nicht in den LPM4 
wechselt.

von Michael (Gast)


Lesenswert?

Ich bin in der Tabelle in der Zeile verrutscht.
Es sind tatsächlich 78 µs laut Datenblatt.

Aber das Oszi lügt leider nicht --> 9,82 µs

Mein Sourcecode ist doch korrekt?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das sieht soweit schon korrekt aus. Ist zufälligerweise ein Debugger mit 
dem 'FR5729 verbunden?

von Michael (Gast)


Lesenswert?

Ja ein Debugger hängt dran.

von Teiler (Gast)


Lesenswert?

Nimm das for(;;) weg. Wenn er weiter läuft, und schöne Spikes zeigt, 
funktioniert der LPM. Zeig uns mal den Scope Bildschirm. Wurde eine 
Taste zufiel gedrückt und horizontal geteilt? Scheint ja der Faktor 10 
zwischen Soll und Ist zu sein.

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.