Hi, habe ein lauffähiges Programm mit welches per Polling mit der SPI Strings sendet. Jetzt würde ich gern das Selbe mit ISR machen. Ich bin bis jetzt nur soweit, dass ich das Polling while(!(SPSR) & (1<<SPIF)) auskommentiert habe und den Interruptvektor für die SPI rausgesucht habe. Was muss in der ISR stehen?
Beider dieser Frage erhälst Du nur Antworten mit: "42" und "habe meine Glaskugel verlegt". Weissagen kann Dir das keiner hier, Du musst uns schon den gesamten Code zeigen.
Erstmal ist Deine ISR jetzt schon fehlerhaft, denn: "SPIF is cleared by hardware when executing the corresponding interrupt handling vector." Frage in der ISR ab, ob das Daten Register frei ist und schreibe (wenn ja) das nächste Byte hinein. Falls schon alle Bytes gesendet wurden, machst DU nichts. Daraus folgt: Das erste Byte musst Du außerhalb der ISR senden, falls zu diesem Zeitpunkt das Daten-Register leer ist.
Hi, habs versucht und ich es klappt leider nix. Kannst du mir bitte vielleicht ein Beispiel hier posten? Hab mit ISR noch vorher nit gearbeitet.
Ich hab das Problem mit der ISR und bin mir auch nicht sicher, wie ich die auskommentierte SPI_putString() auf mein ISR Sache umschreiben kann. Ich darf ja nicht ne while in die ISR packen. Beim debuggen wird meine ISR auch nur 1x aufgerufen (nach dem ersten Byte schreiben)
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.