MSP430F5438 mit Watchdog

Gast #3119933
Lesenswert?

Hi Leute,

ich verzweifle gerade an dem MSP, ich wollte mich langsam einarbeiten 
und deshalb via Watch dog einen PORT jede Sekunde High und LOw schalten.

Ich sitze da schon den ganzen Tag dran und die anderen Thread hier im 
Forum haben mir leider auch nicht weitergeholfen.

Kann mir vlt jemand ein kleines Beispielprogramm mal zeigen, in dem der 
PORTX z.b. ein und ausgeschaltet wird einmal Pro Sekunde?

Meine ÜBerlegungen, initialisiere den WD mit dem Passwort und setze 
dabei den Counter auf 0. wenn der WD einen Überlauf hat, Überprüfe das 
BIT WDTIFG, ob dieses gesetzt ist. Wenn ja, dann PORTX High schalten und 
WDTIFG zurücksetzen, andernfalls Warte... und später dann das gleiche 
mit PORTX, low geschaltet.


LG

Lars
Gast #3119945
Lesenswert?

ich wollte mit dem Watchdog zunächst einmal anfangen um mich in den µC 
einzuarbeiten. Ichweiß das man es normalerweise nicht dafür verwenden 
sollte.

WEnn ich das mit dem WD geschafft habe, würd eich zum nächsten Schritt 
gehen und dasselbe mit den TImern machen.
Gast #3120047
Lesenswert?

warum funktioniert folgendes TImerprogramm denn auch nicht ?
1
int main( void )
2
{
3
 //---------------------   Init
4
  P4DIR = 0xFF; //POrt 4 = Output
5
  P4OUT=0x00;
6
  int i =0;
7
  //---------------------   Init end 
8
  // --------------------- Main Loop
9
  TA1CTL = 0x1A4;
10
  TA1R =0x00;
11
  while(1)
12
  {
13
    if(TA1R=0xFFFF && i==0)
14
    {
15
      P4OUT = 0x9C;
16
      i++;
17
    }
18
    if(TA1R==0xFFFF && i==1)
19
    {
20
      P4OUT = 0x00;
21
      i--;
22
    }
23
  }
24
}
Gast #3120080
Lesenswert?

danke erst einmal, aber ist denn der Fehler oben so groß ?
ich dachtre ich hätte alles richtig eingestellt... bin mir nur unsicher 
bei der abfrage, wenn der TImer einen bestimmten wert erreicht hat
Gast #3120102
Lesenswert?

Moin,

erst einmal ist gängige Praxis beim MSP,
den WDT (WatchDogTimer) als normalen timer
zu verwenden. Haue tur da nicht not ;-)!
Anschauen:
MSP430FG54x Demo - WDT, Toggle P1.0, Interval Overflow ISR, DCO SMCLK
MSP430x54x_wdt_01.c in den code-examples
family-handbook ist als Anfänger lästig wird später aber lustig,
nur Geduld

Gruss
Dietmar
#3120198
Lesenswert?

DS aus W schrieb:
> erst einmal ist gängige Praxis beim MSP,
> den WDT (WatchDogTimer) als normalen timer
> zu verwenden.

Gängige Praxis heißt aber noch lange nicht gute Praxis. Es gibt keinen 
Grund, die Timer nicht zu benutzen.

Man muß sich mal in einen Applikationsingenieur hineinversetzen. Es ist 
doch langweilig, übliche Probleme mit den üblichen Methoden zu lösen. 
Daher probieren die gerne dirty Tricks, die in der Praxis Pferdefüße 
haben können.

Leider kann das ein Anfänger aber nicht einschätzen, was eine gute und 
zuverlässige Lösung ist. Er vertraut dem Applikationsingeneur, der aber 
nur seinen Spieltrieb ausleben wollte.

Ein bekannt berüchtigtes Beispiel ist, mechanische Kontakte mit externen 
Interrupts einzulesen. Und daher sieht man in der Praxis oft Geräte mit 
unzuverlässiger Tasten-, Drehgeberentprellung.
Gast #3120218
Lesenswert?

Auch für den 8051 fand ich in alter Literatur Beispiele, in denen der 
Watchdog das Hauptprogramm macht, einiges tut, und dann wartet, bis der 
Watchdog anschlägt. Das ist also nicht immer völlig abwegig. Die 
8051-Derivate mit nicht mehr abschaltbarem Watchdog heißen z.B. 80C515, 
80C517, C515, C517, von Siemens/Infineon.

Aktuell mache ich gerade einen Bootloader (Monitor) watchdogfest, den 
ich für Testprogramme nutze. Sowas in der Art des bekannten EMON52 von 
Elektor. Denn das Programm blieb bei Watchdogbetrieb natürlich darin 
hängen.

Man kann sich im RAM ein Byte oder Bit fest legen, welches vom µC bzw. 
vom Programm nicht initialisiert wird. Dann toggelt man dort nach jeder 
Watchdog-Auslösung ein Bit, oder benutzt es gar direkt als Zähler, der 
die Auslösungen zählt, das ist gar nicht soooo kompliziert.

Um eine LED blinken zu lassen, macht man es aber gewöhnlich anders, und 
verwendet den Watchdog dafür nicht. Um den Watchdog als Anfänger mal 
auszuprobieren, ist eine blinkende LED per Watchdog aber eine gute Idee.

Einige Debugger spinnen allerdings nach Watchdog-Auslösung rum. Damals 
bei mir die LPC2000 mit dem ULINK-Tool von Keil, es gab nach 
Watchdogauslösung keine Kommunikation mit dem PC mehr. Dann mußte man 
die RS232 auspacken, und ein neues Programm ohne Watchdog mit einem 
anderen Tool über den Bootloader flashen. Wehe, man hat da in seinen 
Geräten später keine RS232 drauf, wenigstens zwei auf der Platine 
angebrachte Stifte, und nur die ISP-Schnittstelle alleine!
Gast #3120235
Lesenswert?

Lars hat nicht gesagt, lieber Peter, das er
einen Herzschrittmacher für seinen Opa bauen
möchte. Er wollte, gaz unverfänglich, eine LED
blinken lassen.
Dafür gibt es Beispielcode von TI, auch mit dem
WDT. Ntürlich auch für den Timer_A.
Erste Zeile im family handbook- chapter10:
>>
The watchdog timer+ (WDT+) is a 16-bit timer that
can be used as a watchdog or as an interval timer.
<<
Dieter Nuhr hat manchmal doch Recht ;-)
Nicht böse gemeint!
#3120316
Lesenswert?

Wilhelm Ferkes schrieb:
> Um den Watchdog als Anfänger mal
> auszuprobieren, ist eine blinkende LED per Watchdog aber eine gute Idee.

Vermutlich hat dann der MSP-Watchdog aber einen extra Spezialmodus.

Ein üblicher Watchdog, z.B. im 8051 (Atmel) oder in älteren AVRs führt 
bei Überlauf immer ein Reset aus. Damit läßt sich daher keine Blink-LED 
realisieren.

Wilhelm Ferkes schrieb:
> Man kann sich im RAM ein Byte oder Bit fest legen, welches vom µC bzw.
> vom Programm nicht initialisiert wird.

Das ist schon extrem von hinten durch die Brust ins Auge. Warum einfach, 
wenn es auch kompliziert geht.
Und nach einem Power-On Reset ist der Zustand unbestimmt.
Gast #3120323
Lesenswert?

Peter Dannegger schrieb:

> Ein üblicher Watchdog, z.B. im 8051 (Atmel) oder in älteren AVRs führt
> bei Überlauf immer ein Reset aus. Damit läßt sich daher keine Blink-LED
> realisieren.

Ja doch. Watchdog und Oszillator-Watchdog setzen in SFR Flags, die nach 
Reset eben genau zur Auswertung erhalten bleiben, auch vom Programm 
wieder gelöscht werden können. Sonst hätte ich meinen Bootloader bzw. 
Monitor nicht überarbeiten können.

Der popelige Standard-8051 hat natürlich nichts.

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