Hi,
ich bastel/spiele nun seit ein paar Wochen mit einer Hand voll Atmega8
herrum und wollte nun als nächstes, mich einmal an die Kommunikation
zweier dieser machen...
nachdem ich mich eine weile über verschiedene Arten informiert habe
wollte ich die Verbindung über die SPI Schnittstelle ausprobieren.
Dazu habe ich hier:
http://www.mikrocontroller.net/mc-project/Pages/AVR/Programme/Programme.html
recht weit unten die datei spi_bibliothek.h gefunden und daraus
folgendes gebaut:
Master (Minimalprojekt - nur das nötigste):
1 | int main(void)
|
2 | {
|
3 | SPI_MasterInit();
|
4 |
|
5 | while(1)
|
6 | {
|
7 | SPI_MasterTransmit('A');
|
8 | _delay_ms(200);
|
9 | SPI_MasterTransmit('B');
|
10 | _delay_ms(200);
|
11 | }
|
12 | }
|
und als Slave (Minimalprojekt - nur das nötigste):
1 | int main(void)
|
2 | {
|
3 | SPI_SlaveInit();
|
4 |
|
5 | char tmp ='0';
|
6 |
|
7 | while(1)
|
8 | {
|
9 | tmp = SPI_SlaveReceive();
|
10 | if(tmp == 'A'){
|
11 | //LED Anschalten...
|
12 | }
|
13 | if(tmp == 'B'){
|
14 | //LED Ausschalten...
|
15 | }
|
16 | }
|
17 | }
|
zur Verkabelung:
sclk <-> sclk
mosi <-> mosi
miso <-> miso
ss <-> ss
nur leider blieb der erfolgt ehr auf der Strecke liegen als das sich
reaktionen am 2. Atmega bemerkbar machten...
es Kompiliert fehlerfrei und die Led's lassen sich auch sonnst
fehlerfrei ansteuern.
Habe ich ggf. etwas vergessen / falsch gemacht ?
Gruß,
Eistee ;-)