10. Module
Kanäle, für den 15. Kanal (channel 14) gilt zusätzlich die specialMask die vom
Mikrocontroller intern mit der globalMask UND-verknüpft wird.
Die Akzeptanzmaske bestimmt, welche Bits der Message-ID einer eingehenden Nachricht
mit der Empfangs-ID eines CAN-Kanals zu vergleichen sind, um zu entscheiden, ob eine
eingehenden Nachricht für diesen Kanal bestimmt ist und zu empfangen ist. Ein 0-Bit
bedeutet "don't care "(egal), ein 1-Bit bedeutet "compare" (muß verglichen werden).
Beispiel, gültig für alle Kanäle 0 ...13:
globalMask
Empfangs-ID
Message-ID
Empfang ja/nein
Wenn specialMask ungleich globalMask ist, dann werden, wegen der UND-
Verknüpfung, für Kanal 14 weniger Bits als bei den Kanälen 0...13 verglichen. Kanal 14
ist also für mehr eingehende Nachrichten empfangsbereit. Man könnte z.B. globalMask
auf 0x07FF setzen (=alle 11 ID-Bits) und specialMask auf 0x0000. Dann ist jeder
Kanal 0...13 nur für den Empfang genau einer Nachricht zuständig, und Kanal 14 ist ein
Universalempfänger.
Weitere Details zum Nachrichtenempfang siehe auch ab 10.1.7.
10.1.2 Statusabfrage für einen CAN-Kanal
function ready ( int channel ) returns int
Die Funktion ready prüft, ob ein Kanal bereit für eine neue CAN-Übertragung ist.
channel 0...14 (channel 14 kann nur empfangen und ist nie bereit)
Rückgabe:-1 wenn bereit, sonst 0
10.1.3 Test auf Übertragungsfehler
function error () returns int
Die Funktion error befragt die integrierte CAN-Hardware des C164CI nach dem zuletzt
aufgetretenen Fehler. Eine Zuordnung eines Fehlers zu einem einzelnen Kanal ist nicht
0x0000
0x07FF
egal
0x0120
egal
0x0120
ja
ja
0x7FF
0x7FE
0x120
0x120
0x121
0x121
nein
ja
93