Cheddar
Bekanntes Mitglied
Liebe C-Coder,
Ich habe ein kleines Spiel programmiert und parallel dazu einen Wii-Mote gebastelt, der per USB am Computer ausgelesen wird.
Ich habe folgenden Code
(errno.h, stdio.h)
schon erfolgreich kompiliert.
Nun versuche ich, ihn in einem Spiel unterzubringen, d.h. in einer while()-Schleife.
Sobald sich das "fopen" in der Schleife befindet, gibt das Programm unsinnige Zahlen aus, z.B. val==16, dabei kann der int "val" nur die Werte 0 und 1 annehmen. Außerhalb der Schleife gibt das Programm Werte aus, die sehr gut stimmen könnten, diese bleiben aber konstant, immerhin wird die Datei nur einmal ausgelesen.
Meine Frage: Welchen Befehl soll ich statt "fopen("/dev/ttyUSB0","r+");"
nehmen?
Ich nutze Debian GNU/Linux Lenny und parallel dazu XUbuntu 9.04.
Außerdem kompiliere ich mit gcc.
Ich habe ein kleines Spiel programmiert und parallel dazu einen Wii-Mote gebastelt, der per USB am Computer ausgelesen wird.
Ich habe folgenden Code
Code:
port=fopen("/dev/ttyUSB0", "r+");
while(i!=14)
{
column[i]=fgetc(port);
printf("%c",column[i]);
i++;
}
x=((int) column[1] - '0') *100+((int)column[2] - '0') *10+((int)column[3] - '0');
y=((int) column[5] - '0') *100+((int)column[6] - '0') *10+((int)column[7] - '0');
z=((int) column[9] - '0') *100+((int)column[10] - '0') *10+((int)column[11] - '0');
val=((int) column[13] - '0');
printf("\n x==%d y==%d z==%d Button.value==%d\n",x,y,z,val);
schon erfolgreich kompiliert.
Nun versuche ich, ihn in einem Spiel unterzubringen, d.h. in einer while()-Schleife.
Sobald sich das "fopen" in der Schleife befindet, gibt das Programm unsinnige Zahlen aus, z.B. val==16, dabei kann der int "val" nur die Werte 0 und 1 annehmen. Außerhalb der Schleife gibt das Programm Werte aus, die sehr gut stimmen könnten, diese bleiben aber konstant, immerhin wird die Datei nur einmal ausgelesen.
Meine Frage: Welchen Befehl soll ich statt "fopen("/dev/ttyUSB0","r+");"
nehmen?
Ich nutze Debian GNU/Linux Lenny und parallel dazu XUbuntu 9.04.
Außerdem kompiliere ich mit gcc.