Gast
#4099
Tag liebes Forum, ich habe mal im Anhang ein kleines .ASM Listing gelegt, welches folgende Aufgaben erfüllen soll: 1. Initialisierung 8515 Stack, Ports, SREG -> Interrupts zulassen 2. Initialisierung des SPI Teilung Phi/128 (SPR0 = 1, SPR1 = 1) Datenübernahme durch steigende Flanke (CPHA = 0, CPOL = 0) Betrieb als Master (MSTR = 1) Datenfluß MSB -> LSB (DORD = 0) SPI aus (Bit SPE = 0) Interrupt ein (SPIE = 1) 3. SPI Enable (Bit 6 -> SPCR auf 1), Reset Slave durch String $01 4. Adresse an Slave $30 5. Warten bis Flag SPIE in SPSR gesetzt ist 6. Flag SPIE löschen 7. Daten an Slave 8. Warten bis Flag SPIE in SPSR gesetzt ist 9. Flag SPIE löschen usw. Nachdem die Übertragung beendet ist, wird das SPI abgeschaltet und verbleibt in einer Schleife = späteres Hauptprogramm. Nun ist mir beim Testen im "AVR Studio 4" aufgefallen, das bereits nach dem Senden des ersten Bytes das Bit WCOL im SPSR gesetzt wird und auch bleibt. Das ist mir nicht ganz klar. Ebenso kann ich im "AVR Studio 4" nicht erkennen, ob das Register SPDR mit dem korrektem Byte gesetzt wird. Es steht immer nur $00 drin Kann mir das vielleicht mal jemand erklären? Kann natürlich auch sein, das ich einen Fehler im Listing habe......... Life austesten kann ich es noch nicht, da der Slave (CMX813)noch nicht vollständig aufgebaut werden kann - Quarz fehlt noch. Danke schon mal, Günter