Forum: Mikrocontroller und Digitale Elektronik schöner LED Fade


von Los R. (classicio)


Lesenswert?

Hallo Leute,
ich habe im Internet von einem anderen Programmierer einen wirklich 
tollen LED Fade gefunden 
(http://forum.43oh.com/topic/3023-post-your-led-fader-code/ von 
oPOssum).
Da das ganze am Ende mit drei LEDs laufen soll, wollte ich es erst 
einmal versuchen auf die grüne LED am LaunchPad zu erweitern.
Ich habe viel mit dem Code herumgespielt und versucht ihn zu verstehen 
und die LED genauso zum faden zu bringen, leider klappt's nicht...

Kann mir jemand sagen, womit ich mich da genauer auseinander setzen 
muss, um dies zu erreichen?
Die untere Funktion ist dabei natürlich aussen vor ;)

Vielen Dank!

Code:
1
#include <msp430.h>
2
#include <stdint.h>
3
4
void main(void)
5
{
6
    WDTCTL = WDTPW | WDTHOLD;
7
    DCOCTL = 0; BCSCTL1 = CALBC1_16MHZ; DCOCTL  = CALDCO_16MHZ;
8
    P1DIR = P1SEL = BIT6;
9
    TACCTL1 = OUTMOD_7; TACTL = TASSEL_2 | MC_2 | TAIE;
10
    _EINT();
11
}
12
#pragma vector = TIMER0_A1_VECTOR
13
__interrupt void timer_a1_isr(void)
14
{
15
    static uint32_t x = 0x00100000L;
16
    static unsigned d = 1;
17
    TACCR1 = x >> 16;
18
    volatile unsigned z = TAIV;
19
    if(d) {
20
        x += (x >> 7); if(x > 0xF8000000L) d = 0;
21
    } else {
22
        x -= (x >> 7); if(x < 0x00200000L) d = 1;
23
    }
24
}

von Mike (Gast)


Lesenswert?

Los Rob schrieb:
> Ich habe viel mit dem Code herumgespielt und versucht ihn zu verstehen
> und die LED genauso zum faden zu bringen, leider klappt's nicht...

Woran hakt es denn?

von Los R. (classicio)


Lesenswert?

Die grüne LED fadet, wie gewollt. Die Rote würde ich gerne dazuschalten.
Leider leuchtet sie immer nur permanent.

Die untere Funktion habe ich verstanden, dient der Steuerung der 
Helligkeit und somit der Geschwindigkeit des Fadens -daher für die 
Ansteuerung aussen vor.

Ich vermute es liegt an der Zeile
1
 TACCTL1 = OUTMOD_7; TACTL = TASSEL_2 | MC_2 | TAIE;
weiss aber nicht wie ich diese manipulieren soll :/

von Mike (Gast)


Lesenswert?

Los Rob schrieb:
> weiss aber nicht wie ich diese manipulieren soll :/

Dann guck doch einfach mal in das Kapitel 12 (Timer_A) des Datenblatts 
von deinem Prozessor. Da is die ganze Steuerung der Timerhardware 
beschrieben.

von Los R. (classicio)


Lesenswert?

Liegt es denn an der besagten Zeile?

von Los R. (classicio)


Lesenswert?

Ich kriege es nicht hin :/

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.