Gast
#912942
Moin, ich programmiere einen AT91SAM7X256 und möchte über I²C ein EEPROM auslesen. Dazu habe ich mir das Beispiel: basic-twi-eeprom-project-1.4-at91sam7x-ek von Atmel angeschaut und die Methoden davon in mein Programm eingebaut. Ich lese innerhalb einer Schleife immer eine Variable (also Daten von ein paar Byte) mit mit der Methode TWID_Read in synchronen Modus aus, analysiere die und speichere die dann. Ein Schleifendurchlauf holt eine Variable, ingesamt müssten über 100 Variablen auf diese Weise geholt werden. Das läuft auch ganz flüssig, solange ich einen Breakpoint der Schleife habe. Wenn ich mehrere Durchläufe auf einmal machen lasse, dann bleibt das Programm an dieser Stelle hängen:
1 | |
2 | |
Im Statusregister (TWI_SR) sind die Bits 0, 2, 3 gesetzt, das sind die Bits TXCOMP, TXRDY und ein unbenanntes Bit. Derzeit arbeite ich mit CrossStudio für ARM 1.6 von Rowley. Im Anhang ist ein Oszilloskopbild von einer der übertragenen Variablen. Oben ist Datenleitung, unten ist Taktleitung. Hat einer von Euch eine Idee, warum das beim einzelnen Lesen funktioniert aber nicht, wenn ich alle Durchläufe auf einmal mache?
