Gast
#456565
Hallo zusammen Ich suche ein AVRGCC Beispiel das zeigt wie SPI benutzt wird... konnte leider nicht wirklich etwas finden besten dank und gruss
|
Anzeige
|
SPI beispiel
Gast
#456565
Hallo zusammen Ich suche ein AVRGCC Beispiel das zeigt wie SPI benutzt wird... konnte leider nicht wirklich etwas finden besten dank und gruss
Gast
#456567
Schon mal im Datenblatt geguckt? Übrigens gehören in die Codesammlung keine Fragen. Deine gehört eher ins gcc-Forum.
Gast
#456569
Mist! Verdrückt. Die ist hier ja schon richtig... Datenblatt und die Forensuche dürften trotzdem deine erste Anlaufstelle sein.
Gast
#456619
soweit war ich selber schon... wie sieht denn nun eine gelungene funktion zum senden per spi aus? so als gutes beispiel zum wieder verwenden? danke
Gast
#456649
Hättest du ins Datenblatt geschaut, hättest du da eine gefunden...
Gast
#1243887
Ich hab den code aus dem Datenblatt, aber es geht trotzdem nicht wäre es nicht einfacher in 1 thread mal eine ordentliche beispiel implementierung zu posten wie in 100 threads "schau im datenblatt"...?
Gast
#1243900
>Ich hab den code aus dem Datenblatt, aber es geht trotzdem nicht wäre es >nicht einfacher in 1 thread mal eine ordentliche beispiel >implementierung zu posten wie in 100 threads "schau im datenblatt"...? NEIN, dafür ist das Datenblatt da! Wer zu faul ist das Datenblatt zu lesen, ist vermutlich auch zu faul, den entsprechenden Beitrag im Forum zu suchen und zu finden und es würde trotzdem 100000 mal wieder das selbe gefragt! Wenn es bei Dir nicht funktioniert, dann liegt der Fehler sicher nicht in dem Teil, den Du aus dem Datenblatt hast.
Gast
#1243954
und woher soll ich den code zaubern der nicht im Datenblatt steht... ausm Datenblatt?... Der Code ausm Datenblatt Funktioniert, aber z.B. fehlt da die Rückleitung momentan kann ich nur von meinem AVR128 etwas zu meinem AVR88 Senden und nichts zurück. Und da helfen mir die 100 Verweise auf das Datenblatt leider GARNICHTS! Valdur wrote:
> Ich hab den code aus dem Datenblatt, aber es geht trotzdem nicht
Laß Dir nicht alles aus der Nase ziehen, was geht nicht?
Also was machst Du, was soll daraufhin passieren, was passiert
stattdessen, wie prüfst Du es?
Wie reagieren die Statusbits?
Glaskugelmodus an:
Beim SPI-Master den SS-Pin als Ausgang gesetzt?
Peter
Gast
#1243984
Ich hatte vor einen AVR 128 und 8 AVR 88 zu benutzen die auf Anfrage des 128 gers Daten ihm zusenden. 128 ger master code aus dem 128 ger Datenblatt
88 ger slave code aus dem 88 ger datenblatt
sämtliche pins habe ich richtig gesetzt wenn ich vom Master auf den Slave eine "12" Sende kommt diese auch an. Auf meinem Oszi habe ich auch nachgewiesen das was über MOSI zum slave geht stimmt soweit kein Problem. Nun hab ich die Transmit Funktion des Masters für den slave Kopiert aber das Funktioniert nicht auf der MISO Leitung wird nur das MOSI signal etwas verzögert gespiegelt und mein Master empfängt mit der etwas Modifizierten Transmit Funktion auch nichts.
Ich bin mir im Klaren das es dieses /SS gibt, aber in der Datenblatt Implementierung gibt es das auch nur auf low sogar beim Master. Sorry wenn sich manche Sachen etwas blöd anhöhren aber das hier ist nicht direkt mein Fachgebiet.
Gast
#1243985
Ach und wie kann ich /SS auf Ausgang schalten, ich weis nur wie ich es high oder low ziehen kann, mit dem SPCR Register geht es nicht und sonst hab ich dazu im Datenblatt auch nichts gefunden.
Gast
#1244068
Naja, das SPI zwischen 2 AVRs ist gelinde gesagt ziemlich bauchschmerzig. Die AVRs haben keinen Sendepuffer, d.h. der SPI-Slave müßte hellsehen können, wann er das zu sendende Byte schreiben darf. Der Master muß den /SS des Slave auf low ziehen, der Slave muß diesen Pin mit auf einen Interrupt legen und der Interrupt schreibt dann das erste Sendebyte rein. Der Master zieht also /SS auf low und wartet dann ne Weile. Dann schreibt er ein Dummy-Byte und danach wartet er wieder usw. Für nen ersten Test nimm 1ms Wartezeit, sollte dem Slave erstmal reichen, das SPI rechtzeitig zu füttern. Und wenns klappt, kann man kürzer probieren. Das ganze SPI wird also eher zu ner Warteorgie als denn zu einem flüssigen Datentransfer. Wenn möglich würde ich daher das I2C vorziehen, da gibt es ein klar definiertes Handshake über die SCL-Leitung und niemand muß unnütz warten. Peter Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|