Hallo,
Ich möchte den CAN-Bus auf verschiedene Identifier abfragen. Liegt auf
dem CAN-Bus eine Message mit einem der gefragten Identifer, soll eine
bestimme Aktion passieren. So ist die Aufgabenstellung.
Die Identifier sind 0x1000 und 0x2010, 0x2011,..., 0x2019, 0x2020.
Die Frage ist, in Datenblättern und im Internet ist immer von einem 11
bit Identifier die Rede, also z.B. 0x317. Meine Vorgabe ist aber
vierstellig. Woher kommt das ? 11 bit 16 bit ?
Und wie lege ich die Register IDM und IDTag fest. Ich habe einfach mal
mit 16 bit weitergemacht, wobei ich glaube, das das nicht richtig ist.
Für die Filterung habe ich mal folgendes überlegt:
1 | ID 0x1000
|
2 | IDMask 1111 1111 1111 1111
|
3 | ID Tag 0001 0000 0000 0000
|
4 |
|
5 |
|
6 | ID 0x2010 - 0x2017
|
7 | IDMask 1111 1111 1111 1000
|
8 | ID Tag 0010 0000 0000 0XXX
|
9 |
|
10 |
|
11 | ID 0x2018 - 0x2019
|
12 | IDMask 1111 1111 1111 1110
|
13 | ID Tag 0010 0000 0000 100X
|
14 |
|
15 |
|
16 | ID 0x2020
|
17 | IDMask 1111 1111 1111 1111
|
18 | ID Tag 0010 0000 0000 0010
|
Meine Idee:
Aufgeteilt in die 4 Bereiche, frägt man dann immer die einzelnen
Bereiche in einer Schleife ab.
Oder gibt es einen anderen Weg, wie ich diese Identifier leichter
filtern kann ?
Oder wie kommt man von den 16 bit zu 11 bit ?