www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ASM für SPI .. ist das richtig so?


Autor: Horst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Mein CAN Controller (Slave) will einfach nicht funktionieren.
Vielleicht ist das SPI falsch konfiguriert. Wäre echt schön wenn jemand
helfen könnte. Hier der Code der im Mega8515 (Master) abgelegt ist:

; -------------------------- KONFIGURIEREN -------------------
ldi temp, 0b10100000  ; Output = SCK & MOSI
out DDRB, temp

ldi temp, 0b01010001  ; SPIEnabled, MasterMode, SPI Clock Rate=
                        ; OSC/16 = 250kHz @ 4MHz OSC
out SPCR, temp

; ---------------------- per SPI was senden ------------------
cbi PortB, 4      ; /CS pull down
  ldi temp, 0b00000010  ; WRITE-Instruction
  rcall spiout
sbi PortB, 4      ; release /CS



; -------------------- SUBFUNKTION FÜR SENDEN ------------
spiout:
  out SPDR, temp
wait_spi:
  sbis SPSR,SPIF                  ; Transmission complete?
  rjmp wait_spi

  ret                             ; back...



Ich bin schon am verzweifeln, ich weis echt nicht wo ich den Fehler
suchen soll. Mein restliches Programm bin ich schon hundertmal
durchgegangen. Leider programmieren das alle bis auch mich in C.
Deshalb krieg ich auch von nirgendwo Hilfe. Ist doch zum heulen.

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Horst,

manchmal hilft das aufleuchten einer LED an einer kritischen Stelle
wesentlich weiter

Schau mal nach, vielleicht findest Du dort eine Idee....

http://www.mikrocontroller.net/forum/read-4-21765.html


Ein kleiner Tipp:

ldi temp, 0b01010001  ; SPIEnabled, MasterMode, SPI Clock Rate=
out SPCR, temp

besser wäre:

ldi temp, 1<<.....  ; SPIEnabled, MasterMode, SPI Clock Rate=
out SPCR, temp

Die Programme lassen sich dann besser lesen, sonst muss man erst das
Datenblatt zu Hand nehmen, um zu schauen, welches Bit gesetzt wird  ;)


Bernhard

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.