mikrocontroller.net

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


Autor: Claudio H. (hedie)
Datum:

Bewertung
0 lesenswert
nicht 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:
#include  "msp430x20x2.h"

#define LED_Blue    0x80;


void clocks(void)
{
  BCSCTL1 = CALBC1_1MHZ;                    // Set range
  DCOCTL = CALDCO_1MHZ;
  BCSCTL2 &= ~(DIVS_3);                         // SMCLK = DCO / 8 = 1MHz   
}

void main(void)
{
  unsigned char ucPWM = 200;
    unsigned char ucCounter = 0;
    
    clocks();
    
    P1DIR = 0x80;   //LED (P1.7) als Ausgang rest als Eingang 
 
  while(1)
  {
     while(ucCounter != 255)
         {
            if(ucPWM < ucCounter) P1OUT |= LED_Blue;
            ucCounter++;
         }
         P1OUT &= ~LED_Blue;
         ucCounter = 0;

         if((P1IN & 0x08) > 0)  ucPWM++;    //Bei Tastendruck PWM wert erhöhen         
  }  
}

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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo in Deinem Code schaltest Du den Watchdog ab?

Autor: Claudio H. (hedie)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.