Block lesen beim MCP2515

OP #237307
Hallo alle miteinander!

Ich habe mir eine eigene MCP2515 Library für AVRs geschrieben, und habe
aber Ärger mit dem Auslesen ganzer Blocks. Das senden von Frames klappt
wunderbar, aber wenn ich über die "READ RX Buffer Instruction" einen
empfangenen Frame auslesen will, hängt meine Funktion (wartet ewig auf
das SPIF flag). Ich habe viel ausprobiert, kriege aber dieses
sequenzielle Lesen nicht hin. Ich fürchte ich habe da ein
VBErständnissproblem wie die Bytes nacheinander aus dem MCP kommen,
nachdem ich das Signal zum starten dieses "Streams" gesendet habe.
Ich habe die SPI-Initfunktion und die Funktion zum lesen des
Empfangsbuffers angehängt. Hat irgendjemand eine Idee, ich bin mi
tmeinem Latein am Ende :-(

Besten Dank schonmal

Woeba
Angehängte Dateien:
Gast #237308
Hallo Wolfgang,

Du musst für jedes Byte, das Du über SPI übertragen willst, das SPDR
beschreiben. Auch wenn Du "nur" lesen willst: die Übertragung wird
mit einem (Dummy-) Schreibzugriff auf SPDR gestartet. Erst danach macht
ein Warten auf SPIF Sinn.

Ich habe mal mein eigenes can.c File angehängt. Das ganze gepackte
Projekt findest Du im Thread "hausbus".

Viele Grüße, Stefan
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.