Hallo zusammen, ich möchte mit der SPI Funktion meines at89s8252 am mosi Pin (P1.5) seriell ein Byte ausgeben, das ganze soll zu test- und verständnisszwecken fortlaufend geschehen(immer das selbe Byte) ich mache das ganze ohne interrupt, stattdessen im polling-betrieb. Mein beigefügtes Programm funktioniert nicht ganz, wennn ich das ganze im debugmodus laufen lasse (Keil) dann wird die SPI Funktion zwar initialisiert, und nach 45 mal klicken wird auch das spif interrupt flag gesetzt obwohl das spdr data register nie beschrieben wurde, was ja falsch ist....welcher programmteil funktioniert da bei mir nicht? wieso bekomm ich mein byte nicht ins spdr register geschrieben? vielen dank für eure Hilfe (hoffe mal das ralf das liest, der hat mir schon viel weitergeholfen:) hier mein programm: $nomod51 #include <AT898252.H> transmit_completed BIT SPIF_ /* SPI Interrupt Flag 0x80 */ data_to_send DATA 10111101b ; zu sendendes byte org 0000h clr transmit_completed clr WCOL_ /* SPI Write Collision Flag */ mov p1,00h mov SPCR,#01011011b ;Initialisierung des SPI Port loop: mov spdr,data_to_send jnb transmit_completed,$ clr transmit_completed call loop ;writing to the spi data register(spdr)of the master cpu starts ;the spi clock generator and the data written shifts out of the ;mosi pin end
Du weißt schon, daß Du Dich soeben mitten in ein Wespennest gesetzt hast ? Haufenweise neue Threads für die gleiche Frage, das gehört sich einfach nicht. Aber Du solltest zuerst mal die 8051 Hardwarebeschreibung und Instructionset durchlesen: "mov p1,00h" macht erstmal nicht das was Du erwartest und wenn, dann wäre es falsch. Lies Dir mal speziell die Portbeschreibung durch. Die meisten Zusatzfunktionen sind UND-verknüpft, d.h. eine 0 zu setzen, sperrt diese. Und die anderen Antworten hast Du Dir ja noch nicht mal durchgelesen und den "call"-Fehler immer noch drin gelassen. Wirst Dir wohl auch diese nicht durchlesen, da mache ich jetzt lieber Schluß. Peter
die hab ich sehr wohl durchgelesen. ENTSCHULDIGE VIELMALS DASS ICH MICH ALS ANFÄNGER NOCH NICHT SO GUT AUS KENNE!!!!!!!!!!!!!!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.