Hallo

Außer zwei berechtigten Warnungen kann ich das fehlerfrei übersetzen:
Code:
avr-gcc -mmcu=atmega8 -Os -mno-interrupts -funsigned-char -funsigned-bitfields -Wall -Wstrict-prototypes -ggdb -c -DF_CPU=8000000UL -Wa,-acdhlmns=temp.lst temp.c -o temp.o
temp.c: In function `main':
temp.c:7: warning: 'h' might be used uninitialized in this function
temp.c:7: warning: 'd' might be used uninitialized in this function
Zeile 21 ist tatsächlich der for-Befehl:
for(i=0;i<4;i++){

Da fällt mir eigentlich auch kein Fehler auf. Wenn man allerdings nur die Zeilen mit Programmcode zählt, dann kommt man auf diesen if-Befehl:
if(uebergaenge==66){

"lefthand" wäre dann uebergänge, und da d und h beim Programmstart nicht definiert sind, könnte der Kompiler vielleicht der Meinung sein, dies hier wird nicht richtig ausgeführt:
if(dataO[1]<300){d=1;}
if(dataO[1]>600){h=1;}
if(h==1 && d==1){uebergaenge++;

und bei data[1] zwischen 300 und 600 hätte er damit auch vollkommen recht. Deshalb würde ich das Progamm mal so ändern:

int i, h=0, d=0;

Das ist aber nur geraten und nix gewußt.

Gruß

mic