Guten Abend zusammen
Ich habe hier ein kleines Board mit einem Atmgega324PV darauf.
Dieser hat einen 10MHz Quarz angeschlossen.
Am SPI hängen 2 "devices" welche den ChipSelect auf high haben
und somit nicht aktiv sind.
Ich versuche über folgenden Code überhaupt mal irgend etwas auf dem SPI
auszugeben.
1 | int main(void)
|
2 | {
|
3 | //Eingänge
|
4 | DDRB &= ~((1 << DDB3) | (1 << DDB4) | (1 << DDB6));
|
5 | DDRD &= ~((1 << DDD0) | (1 << DDD3) | (1 << DDD2) | (1 << DDD6));
|
6 |
|
7 |
|
8 | //Ausgänge
|
9 | DDRB |= (1 << DDB0) | (1 << DDB1) | (1 << DDB2) | (1 << DDB5) | (1 << DDB7);
|
10 | DDRD |= (1 << DDD1) | (1 << DDD4);
|
11 | DDRC |= (1 << DDC0) | (1 << DDC1) | (1 << DDC3) | (1 << DDC4) | (1 << DDC5) | (1 << DDC6) | (1 << DDC7);
|
12 |
|
13 |
|
14 | PHY_CS_1;
|
15 | CC2500_CS_1;
|
16 | PHY_RST_0;
|
17 |
|
18 | SPCR = (1<<MSTR) | (1<<SPE) | (1<<SPR0);
|
19 |
|
20 | unsigned char ucCounter = 0;
|
21 |
|
22 | while(1)
|
23 | {
|
24 | LED_ACT_1;
|
25 | SPDR = ucCounter;
|
26 | _delay_ms(100);
|
27 | while(!(SPSR & (1<<SPIF)));
|
28 | LED_ACT_0;
|
29 | _delay_ms(200);
|
30 | ucCounter++;
|
31 |
|
32 | }
|
33 |
|
34 | }
|
Doch leider klappt dies nicht.
Ich komme nicht über das While hinaus. doch weshalb?
Ich habe keine Ahnung wo hier des Fehler steckt!
Hoffentlich kann mir hier jemand helfen :)
Danke schonmal