So ich habe jetzt die Pindefinitionen drin.

Bin in der zwischenzeit übrigens auf einen ATmega8 umgestiegen.

Der Code sieht im Moment so aus. Irgendwie kann ich keine Veränderung der LED-Stadien sehen. Auch die mittlere LED, die im Seed definiert ist, leuchtet nicht.

Code:
#include <stdlib.h>
#include <avr/io.h>
#include <util/delay.h>


#define width 5         // Breite des Spielfelds
#define height 5        // Höhe des Spielfelds

int bit[width][height]; // Bitfeld
int alt[width][height]; // Backup

void LED(unsigned char a, unsigned char b){

    if (a == 1 && b == 1){
        PORTB |= (1<<PB3);
    }
    if (a == 1 && b == 2){
        PORTB |= (1<<PB4);
    }
    if (a == 1 && b == 3){
        PORTB |= (1<<PB5);
    }
    if (a == 2 && b == 1){
        PORTC |= (1<<PB0);
    }
    if (a == 2 && b == 2){
        PORTC |= (1<<PB1);
    }
    if (a == 2 && b == 3){
        PORTC |= (1<<PB2);
    }
    if (a == 3 && b == 1){
        PORTC |= (1<<PB3);
    }
    if (a == 3 && b == 2){
        PORTC |= (1<<PB4);
    }
    if (a == 3 && b == 3){
        PORTC |= (1<<PB5);
    }

}

int main(void){

//#######################Initialisierungen#######################

DDRC = 0xFF;
DDRB = 0xFF;

//###############################################################

unsigned char a;
unsigned char b;

bit[2][1] = 1; // Seed 
bit[2][2] = 1;
bit[2][3] = 1;


while(1){
    for (a = 1; a <= (width-1); ++a){
        for (b = 1; b <= (height-1); ++b){
            // in andere Matrix kopieren
            alt[a][b] = bit[a][b];

            // Nachbarn Checken

            int anz = 0;
            anz = anz + alt[a-1][b-1]+alt[a][b-1]+alt[a+1][b-1];
            anz = anz + alt[a-1][b] + alt[a+1][b];
            anz = anz + alt[a-1][b+1] + alt[a][b+1] + alt[a+1][b+1];

            // Stadien bestimmen

            // Wiedergeburt
                   if (anz == 3){
                       if (bit[a][b] == 0){
                        bit[a][b] = 1;
                    }
                }
            // Einsamkeit
                if (anz < 2){
                    if(bit[a][b] == 1) {
                        bit[a][b] = 0;
                    }
                }

            // bleibt am Leben
                if (anz == 2){
                    if (bit[a][b] == 1){
                        bit[a][b] = 1;
                    }
                }

            // bleibt am Leben
                if (anz == 3){
                    if (bit[a][b] == 1){
                        bit[a][b] = 1;
                    }
                }

            // Überbevölkerung
                if (anz > 3){
                    bit[a][b] = 0;
                }


        }
    }

    // Ausgeben

    for (a = 0; a <= width; ++a){
        for (b = 0; b <= height; ++b){
           if (bit[a][b] == 1){
                LED(a, b);            
            }
        }
    }

    _delay_ms(100); 

}
}
Vielleicht ein brutal einfacher Fehler, find ihn aber gerade nicht...

Hoffe ihr könnt mir helfen