mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI-Problem beim senden Slave->master


Autor: JR1984 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hallo leute,

ich experimentiere gerade mit spi auf einem ATMega16.
ich habe aus der codesammlung ein beispiel genommen um von einem master 
zu einem slave senden zu können.
jetzt versuche ich gerade vom slave zum master zu senden, aber ich komm 
nicht weiter, der slave sendet komische bytes die nicht mit dem zu tun 
haben das ich eigentlich senden will. im anhang hab ich das beispiel das 
ich grad verwende.
zu debug zwecken sende ich die byte die der master vom slave kriegt dann 
über den uart zum pc.
findet irgendwer einen fehler im code weswegen das nicht funzt?

danke im voraus

JR1984

Autor: Michael H* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
void master_transmit (unsigned char data) {
   PORTB &= ~_BV(PB0);   //SS am Slave Low --> Beginn der bertragung
  SPDR = data;                //Schreiben der Daten
  while (!(SPSR & (1<<SPIF)));
  //PORTA = SPDR;
  //PORTB |= _BV(PB0);              //SS High --> Ende der �bertragung
}

warum kommentierst du das setzen des SS?
nach der warteschleife musst du das SPDR register lesen. da sind die 
empfangenen daten drin.

Autor: JR1984 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die kommentare waren schon im bsp vorher drin.

es müsste doch egal sein ob ich nach der warteschleife die daten auslese 
oder in der SIGNAL (SIG_SPI) routine, habs aber jetzt so ausprobiert 
geht such nicht. ich will eigentlich 0x63(sollte 'c' sein) empfangen 
aber ich krieg 0x20 oder 0x21, und das folgt keinem schema.

Autor: Jörg Rohringer (jr1984)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe jetzt weiter getestet, und bin draufgekommen, dass es jetzt 
sporadisch funktioniert, aber nur wenn ich den programmer angesteckt 
habe, der anscheinend irgendwie mit miso und mosi und ss verbunden ist.

Autor: Jörg Rohringer (jr1984)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann es sein dass man beim master den pullup für miso setzen muss?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.