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