Hallo, alle zusammen.
Mir wurde ja schon das letzte Mal erfolgreich geholfen, daher wende ich
mich (nach Auswertung anderer Hilfsmöglichkeiten z.B. Doku) wieder in
dieses Forum mit der Hoffnung, dass mir irgendjemand weiterhelfen kann!
Ich habe ein Programm geschrieben, dass Pins 1-10 am PORT D ansteuert
und entsprechend der gewählten Option bestimmte LEDs leuchten läßt.
Mein Problem ist nun folgendes:
fread(&mem, sizeof(mem), 1, portd) macht nicht das, was ich von dieser
Programmzeile erwarte. Statt "einmalig" die GPIOs auszulesen, scheint
fread (meistens) jedes 2. Mal so lange auszulesen, bis ich eine Taste
drücke und sie dann wieder loslasse! Ich habe ein wenig monkeymaessig
debuggt. Hab als Debug-Code hinter die Zeile geschrieben:
printf(".");
Der Punkt erscheint aber erst, wenn ich die Taste loslasse... Und ein
printf vorher ist schon noch zu sehen, so dass ich annehme, dass der
Fehler im fread liegt.
Code ist angehängt. Ich benutze avr32-linux-gcc Version 4.2.2.-Atmel
1.0.8. (Falls jemand streckenweise ähnlichen Code schonmal gesehen zu
haben glaubt, dann kann ich nur sagen, dass es wahrscheinlich auch so
ist! Ich habe den Code von Christian Z. benutzt, um die GPIOs ansteuern
zu können.)
Wer kann mir nu das mysteriöse Verhalten meines Grasshoppers erklären?