Hallo,
ich brauche mal eure Hilfe. Ich habe eine Platine mit einem ATMega328PA
und einem MCP2515. Zum Betreiben nutze ich die universelle CAN
Bibliothek von Fabian Greif (hier zu finden
http://www.kreatives-chaos.com/artikel/universelle-can-bibliothek). Auf
einer Platine mit einem ATMega8 und einem MCP2515 funktioniert alles
super, wenn ich allerdings auf der erstgenannten Platine die can_init()
Funktion aufrufe, bleibt die Kommunikation in einer Endlosschleife
hängen. Das ganze sieht so aus, wie auf dem angehängten Bild. Oben seht
ihr MOSI, unten MISO. Obwohl die Init Funktion nur einmal aufgerufen
wurde findet laufend diese Kommunikation statt und nichts anderes mehr.
Der entsprechende Code sieht so aus
1 | int main(void)
|
2 | {
|
3 | // initialize UART
|
4 | uart_init(UART_BAUD_SELECT(19200UL, F_CPU));
|
5 |
|
6 | // activate interrupts
|
7 | sei();
|
8 |
|
9 | // redirect standardoutput => now we can use printf()
|
10 | stdout = &mystdout;
|
11 |
|
12 | // switch on Bluetooth
|
13 | PORTD |= (1<<PIND4);
|
14 |
|
15 | // initialize MCP2515
|
16 | if (!can_init(BITRATE_250_KBPS)) {
|
17 | PRINT("Error: no MCP2515\n");
|
18 | for (;;);
|
19 | }
|
20 | else
|
21 | PRINT("MCP2515 active\n\n");
|
22 | ...
|
23 | return 0;
|
24 | }
|
Hat jemand eine Idee, was da los sein könnte?
Vielen Dank und viele Grüße