Forum: Mikrocontroller und Digitale Elektronik TI Launchpad Merkwürdige Code ausführung


von C. H. (hedie)


Lesenswert?

Hallo

Ich bin gerade dabei mich ein wenig mit dem TI Launchpad zu 
beschäftigen...
Zum einstieg, wollte ich mal ein PWM Signal in Software erzeugen...

Dazu hab ich folgenden Code geschrieben:
1
#include  "msp430x20x2.h"
2
3
#define LED_Blue    0x80;
4
5
6
void clocks(void)
7
{
8
  BCSCTL1 = CALBC1_1MHZ;                    // Set range
9
  DCOCTL = CALDCO_1MHZ;
10
  BCSCTL2 &= ~(DIVS_3);                         // SMCLK = DCO / 8 = 1MHz   
11
}
12
13
void main(void)
14
{
15
  unsigned char ucPWM = 200;
16
    unsigned char ucCounter = 0;
17
    
18
    clocks();
19
    
20
    P1DIR = 0x80;   //LED (P1.7) als Ausgang rest als Eingang 
21
 
22
  while(1)
23
  {
24
     while(ucCounter != 255)
25
         {
26
            if(ucPWM < ucCounter) P1OUT |= LED_Blue;
27
            ucCounter++;
28
         }
29
         P1OUT &= ~LED_Blue;
30
         ucCounter = 0;
31
32
         if((P1IN & 0x08) > 0)  ucPWM++;    //Bei Tastendruck PWM wert erhöhen         
33
  }  
34
}

der code läuft grundsätzlich einwandfrei...

Jedoch folgendes problem:
Wenn ich im Debugmodus durchsteppe und den Taster drücke, wird ucPWM 
problemlos erhöht, wenn ich jedoch das programm "Frei laufen lasse" dann 
bleibt ucPWM permanent auf 200 als ob der wert irgendwie immer neu 
initialisiert werden würde...

Hat jemand eine idee woran das liegen könnte?

Danke schonmal

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wo in Deinem Code schaltest Du den Watchdog ab?

von C. H. (hedie)


Lesenswert?

Rufus t. Firefly schrieb:
> Wo in Deinem Code schaltest Du den Watchdog ab?

Oops... stimmt... nirgends....

Übrigens noch eine frage...

Gibt es eine Dokumentation wo die ganzen Register wie zb. BCSCTL1 
beschrieben sind ausser dem Datenblatt? den da weiss ich ja nicht ob 
alle auch im Compiler verfügbar sind...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Claudio Hediger schrieb:
> Gibt es eine Dokumentation wo die ganzen Register wie zb. BCSCTL1
> beschrieben sind ausser dem Datenblatt?

Ja, der zur jeweiligen Familie gehörende User's Guide.

> den da weiss ich ja nicht ob
> alle auch im Compiler verfügbar sind...

Den_n_. Mit zwei 'n'. Verfluchtehackeichkannsnichtmehrsehen.

</ot>

Ob sie im Compiler verfügbar sind steht natürlich nicht in der 
Dokumentation, sondern in den für die entsprechenden Varianten 
angepassten und mit dem Compiler mitgelieferten Headerdateien. Sofern 
der Compiler nicht steinalt ist (und also keine Unterstützung für die 
entsprechende Variante enthält), sind diese vollständig.

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.