Hallo, ich habe Code für meine Kommunikation per SPI der zwei ATMega16 geschrieben, naja eher den Beispiel Code von Atmels Seite genommen. Dieser funktioniert jedoch bei mir nicht und ich weiss auch nicht voran es liegt. Vielleicht könnte jemand meinen Code durchschauen? Vielen Dank.
.zip statt .rar erhöht die Chancen deutlich
Gast
#1230867
Ich sehe kein SlaveSelect (SS) Signal vom Master für den Slave im Code.
Sorry der die Zip Datein
Also ich habe SS vom Master auf Vcc und vom Slave auf Ground gelegt wie dies in AVR151 steht.
Gast
#1230887
So wie es aussieht benutzt du Code für den IAR Compiler mit dem AVR-GCC. Dein Code "funktioniert" nicht weil der AVR-GCC ihn nicht compiliert. Da muß man schon einiges anpassen ;)
Gast
#1230891
>Also ich habe SS vom Master auf Vcc
Autsch. Also wenn du ihn nicht benutzt dann
bitte offen lassen. Aber nicht an Vcc anschliessen!
Sonst brennt dir der Pin weg.
also eigentlich compiliert er ihn da ich ihn auch schon angepasst habe. Es sei dem du hast was gefunden.
Gast
#1230924
>also eigentlich compiliert er ihn da ich ihn auch schon angepasst habe. >Es sei dem du hast was gefunden. >// Interrupt Routine Master Mode (interrupt controlled) >#pragma vector=SPI_STC_vect >void ISR_SPI (void) >{ Ich glaub ich muß mir mal ne neue Version vom AVR-GCC ziehen. Compiliert der den Code da oben wirklich? Oder benutzt du IAR?
holger wrote: >>Also ich habe SS vom Master auf Vcc > > Autsch. Also wenn du ihn nicht benutzt dann > bitte offen lassen. Aber nicht an Vcc anschliessen! > Sonst brennt dir der Pin weg. Wenn er nicht als Ausgang konfiguriert ist, ist das kein Problem, und dann sollte er auch auf VCC gelegt werden (allerdings bitte nicht direkt, sondern über den internen Pull-Up). Allerdings sollte der SS im Master-Betrieb idealerweise als Ausgang konfiguriert sein...
ja ich weiss dass der code eigentlich für iar geschrieben wurde aber in gcc wird der #pragma teil ignoriert was ist den eigentlich mit dem teil: void ISR_SPI (void) ist der interrupt auch falsch?
Daniel Kremer wrote: > void ISR_SPI (void) > > ist der interrupt auch falsch? Für den AVR-GCC ja.
Gast
#1230939
>void ISR_SPI (void) > >ist der interrupt auch falsch? Das ist beim AVR-GCC kein Interrupt sondern eine schnöde Funktion. Interrupts sehen so aus ISR(ISR_NAME) { }
holger wrote: > Interrupts sehen so aus > > ISR(ISR_NAME) > { > } Wobei "ISR_NAME" i.d.R. der im Datenblatt angegebene Vektorname mit angehängtem "_vect" ist...
hm muss wohl den interrupt mal bearbeiten, vielen Dank aufjeden fall.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.