schöner LED Fade

#3811541
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
}
#3811548
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 :/

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