Hallo, ich versuche mit meinem EZ430 Board den CC2500 anzusprechen. (Ist
auf dem Board)
Dazu will ich per SPI den CC reseten, in dem ich 0x30 schicke. Nur hängt
das Programm an 2 Stellen. Nämlich dann wenn jeweils darauf gewartet
wird ob das Senden bzw Empfangen fertig ist. Es wird einfach kein IFG
gesetzt.
1 | P3OUT |= BIT0;
|
2 | P3DIR |= BIT0;
|
3 |
|
4 | UCB0CTL1 |= UCSWRST;
|
5 | UCB0CTL0 |= UCSYNC + UCMST;
|
6 | UCB0CTL1 |= UCSSEL0 + UCSSEL1;
|
7 | UCB0BR0 = 0x02;
|
8 | UCB0BR1 = 0x00;
|
9 | SPI_SPI_SEL;
|
10 | SPI_SPI_DIR;
|
11 |
|
12 |
|
13 | UCB0CTL1 &= ~UCSWRST;
|
14 | //UC1IE
|
15 | IE2 |= UCB0RXIE + UCB0TXIE; //Interrupt enable
|
16 |
|
17 | //Reset des CC2500
|
18 | P3OUT |= BIT0; //aus SLAU325
|
19 | TI_CC_Wait(30);
|
20 | P3OUT &= ~BIT0;
|
21 | TI_CC_Wait(30);
|
22 | P3OUT |= BIT0;
|
23 | TI_CC_Wait(45);
|
24 | P3OUT &= ~BIT0;
|
25 |
|
26 | IFG2 &= ~UCB0TXIFG;
|
27 | while(P3IN&SPI_PIN_SOMI);
|
28 | UCB0TXBUF = 0x30;
|
29 | while (!(IFG2&UCB0TXIFG)); //Programm hängt
|
30 | IFG2 &= ~UCB0RXIFG;
|
31 | while(!(IFG2&UCB0RXIFG)); //Programm hängt
|
32 | while(P3IN&SPI_PIN_SOMI);
|
33 | P3OUT |= BIT0;
|
Kann mir jemand helfen? Auch versteh ich nicht was dieses rumgetoggle
vor dem Senden sein soll. Wäre über jegliche Hilfe dankbar. Vielleich
tkennt ja jemand auch Quellen wo schon mit dem CC2500 auf diese Weise
gearbeitet wurde.