Hallo,
ich bin neu im Forum und frisch in das Thema Mikrocontroller
eingestiegen.
Derzeit hänge ich an einem kleinen Problem mit der SPI Verbinung
zwischen dem Raspberry Pi(Master) und einem AT90CAN128(Slave):
Der AT90CAN empfängt mit dem angehängten Quellcode zwar alle Daten (LED
macht blinkiblinki) aber beim Raspberry kommen keine Daten an (nur [0]).
Die SPI Schnittstelle für den Raspberry habe ich wie auf
http://www.100randomtasks.com/simple-spi-on-raspberry-pi
beschrieben eingerichtet und programmiert.
Liegt der Fehler hier am Quellcode oder sollte mich ehr meiner
Verkabelung widmen-*9?
1 | #define F_CPU 16000000L
|
2 |
|
3 | #include <avr/io.h>
|
4 | #include <avr/interrupt.h>
|
5 | #include <avr/signal.h>
|
6 |
|
7 | volatile unsigned char data;
|
8 |
|
9 | SIGNAL (SIG_SPI) {
|
10 | data = SPDR;
|
11 | PORTB |= (1<<7);
|
12 | if (data >= 0x31) PORTB |= (1<<7); //LEDs aus
|
13 | if (data == 0x00) PORTB &= ~(1<<7); //LEDs an
|
14 | SPDR = 0x34;
|
15 | }
|
16 |
|
17 | int main(void)
|
18 | {
|
19 | DDRB |= (1<<7);
|
20 | DDRB |= (1<<4);
|
21 | SPCR = (1<<SPE) | (1<<SPIE);
|
22 | SPDR = 0x00;
|
23 | PORTB &= ~(1<<7);
|
24 | sei();
|
25 |
|
26 | while(1)
|
27 | {
|
28 |
|
29 | }
|
30 | return 0;
|
31 | }
|