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.
Also ich habe SS vom Master auf Vcc und vom Slave auf Ground gelegt wie dies in AVR151 steht.
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 ;)
>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.
>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?
>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...
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.