Hallo,
vorweg, ich bin noch relativ unerfahren mit Micrcontrollern, also bitte
habt etwas Geduld mit mir ;)
Ich versuche gerade, einen CAN-Bus mit einem LPC2478 Entwicklerboard von
IAR Systems "auszulesen", also erstmal geht es mir nur darum, dass ich
mitlesen kann.
Der Bus läuft mit 500kHz.
Zum Testen habe ich mal einen kleinen Code gebastelt, der einfach ein
"|" auf den Bildschirm schreibt, wenn eine bekannte ID auf dem Bus
liegt...allerdings tut sich leider überhaupt nichts.
Hier mal mein Code:
1 | PCONP |= (1<<13); //power an
|
2 | CAN2MOD |= 0x01; //reset mode
|
3 | PCLKSEL0 = 0x00; //pclk = cpu clock
|
4 | INTWAKE |= 0x40; //wakeup bei aktivitaet
|
5 | PINSEL0 |= 0x1; //funktion RD1
|
6 | CAN1RDA = 0x00;
|
7 | CAN1RDB = 0x00;
|
8 | AFMR = 0x02; //filter erstmal aus
|
9 | CAN1BTR = 0x1C0002; //btr = pclk/2
|
10 | CAN1MOD = 0x02; //listening mode
|
11 |
|
12 |
|
13 | while(true){
|
14 | if(CAN1RID == 0x05){
|
15 | GLCD_print("|");
|
16 | }
|
17 | CAN1CMR |= 0x04;
|
18 | }
|
Kann das so überhaupt funktionieren? Ich habe im Internet nach
Beispielen gesucht, aber so wirklich fündig bin ich nicht geworden. Und
dir mitgelieferten Dokumente sind ja doch eher etwas bescheiden, gerade
für Anfänger. Also auch wenn der Ansatz komplett falsch ist, würde ich
mich freuen, wenn jemand helfen kann (natürlich erwarte ich keinen
fertigen Code).
Viele Grüße und Danke schonmal,
Paul