-
-
Hallo rathma,
beim kurzen überlesen des Codes ist mit die Baudrate von 100kBit aufgefallen.
Wenn Du, wie in Deinem Programm 5 Byte versendest, so dauert dies:
46Bitzeiten (Header,Footer) + (Datenbytes * 8Bitzeiten) = 86 Bitzeiten, was bei 100Kbit ca. 0,86ms macht. Da hast Du dann nur ein Telegramm versendet.
Aber noch nichts Empfangen!!
Besser ist folgender Ablauf, per IRQ Telegramm empfangen (hast Du ja schon eingebaut) und anschließend versenden.
CAN nutzt CSMA/CD, das heißt es wird auf Teufel komm raus gesendet. Dabei wird in kauf genommen, das sich Telegramme gegenseitig auslöschen (CD).
Um dies zu verhindern (da dann komplett wiederholt werden muß), immer nur senden nach einem Empfang, wenn dies möglich ist.
Ansonsten kann es sein, das Du nur die halbe Übertragungs-Bandbreite nutzen kannst, da der Rest alles Collisionen sind.
Setzt einmal die Baudrate hoch, mindestens 500kBit, dann hast Du wieder etwas Luft.
Ansonsten scheint das Prog soweit Okay, nichts auffallendes, werds mir später nochmal genauer ansehen.
Grüße
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen