128 x RGB Tisch

Hallo Dominik,

ich habe die Files geschickt.
Hier nochmal ein paar Beispiele für alle anderen, wie man so etwas machen kann:

 #if TLC_TIMER5 == 0    
    GSCLK_DDR |= _BV(GSCLK_PIN);  // alter Code
#else    
    GSCLK2_DDR |= _BV(GSCLK2_PIN);  // Pin 45 ist OCR5B neuer Code !!
#endif	
Anstatt GSCLK_DDR verwende ich GSCLK2:
/** OC2B (Mega pin 9) -> GSCLK (TLC pin 18) */
#define GSCLK_PIN    PH6
#define GSCLK_PORT   PORTH
#define GSCLK_DDR    DDRH

/** OC5B (Mega pin 45) -> GSCLK (TLC pin 18) */
#define GSCLK2_PIN    PL4
#define GSCLK2_PORT   PORTL
#define GSCLK2_DDR    DDRL

Wichtig ist die Konfiguration des Timer5 selbst:
#if TLC_TIMER5 == 0
    /* Timer 2 - GSCLK */

    TCCR2A = _BV(COM2B1)      // set on BOTTOM, clear on OCR2A (non-inverting),
                                          // output on OC2B
                | _BV(WGM21)       // Fast pwm with OCR2A top
                | _BV(WGM20);      // Fast pwm with OCR2A top
    TCCR2B = _BV(WGM22);      // Fast pwm with OCR2A top
    OCR2B = 0;                // duty factor (as short a pulse as possible)
    OCR2A = TLC_GSCLK_PERIOD; // see tlc_config.h
    TCCR2B |= _BV(CS20);      // no prescale, (start pwm output)
#else
       /* Timer 5 - GSCLK */

    TCCR5A = _BV(COM5B1)      // set on BOTTOM, clear on OCR5A (non-inverting),
                                          // output on OC2B
               | _BV(WGM51)       // Fast pwm with OCR5A top
               | _BV(WGM50);      // Fast pwm with OCR5A top
     TCCR5B = _BV(WGM52)       // Fast pwm with OCR5A top
                | _BV(WGM53);      // Fast pwm with OCR5A top    /* This line is new to get Timer 5 in same Mode like Timer2 */
       OCR5B = 0;                // duty factor (as short a pulse as possible)
       OCR5A = TLC_GSCLK_PERIOD; // see tlc_config.h
       TCCR5B |= _BV(CS50);      // no prescale, (start pwm output)
#endif

Die Library zu ändern ist kein Hexenwerk, da diese auch nur aus C-Code besteht.
Wenn man genauer verstehen will, was passiert, sollte man das Prozessorhandbuch dazu legen.
Timer 5 muß so konfiguruert werden, das seine Betriebsart der von Timer2 entspricht.
Aber auch dies ist im Prozessorhandbuch gut beschrieben.

Gruß