CC2420 Kanalwechsel zu Laufzeit

Gast #1158066
Lesenswert?

Hallo,

ich versuche gerade den Kanal des CC2420 interaktiv zu setzen... Ich 
Arbeite mit einem ATMega128L und dem o.g. CC2420 Funkmodul. Mein Code 
sieht bisher so aus:
1
void setKanal(uint8_t kanal)
2
{
3
  uint16_t FSCTRL_reg;
4
  uint16_t FSCTRL_kanal;
5

6
  SPI_TxRx(0x06);      // SRFOFF
7

8
  FSCTRL_kanal = 357 + 5 * (kanal - 11);
9
  FSCTRL_reg = (SPI_RxReg(0x18) & 0xfc00) | FSCTRL_kanal;
10

11
  SPI_TxReg(0x18, FSCTRL_reg);
12
  FSCTRL_reg = SPI_RxReg(0x18);
13
/*  
14
USART_Tx(0x7e);
15
USART_Tx(0x02);
16
USART_Tx((uint8_t)(FSCTRL_kanal>>8));
17
USART_Tx((uint8_t)FSCTRL_kanal);
18
USART_Tx(0x7e);
19

20
USART_Tx(0x7e);
21
USART_Tx(0x02);
22
USART_Tx((uint8_t)(FSCTRL_reg>>8));
23
USART_Tx((uint8_t)FSCTRL_reg);
24
USART_Tx(0x7e);
25
*/
26
  SPI_TxRx(0x08);      // SFLUSHRX
27
  SPI_TxRx(0x08);      // SFLUSHRX
28

29
  SPI_TxRx(0x03);          // STRXON
30
}

Der Wert kanal liefert ein Wert von 11-26! Der Code funktioniert 
eigentlich auch, solange man den Kanal einmal setzt. Wenn man es erneut 
versucht Funktionierts jedoch nicht mehr. Vielleicht könnt ihr mir 
helfen. Es sollte denke ich nur eine kleinigkeit sein.

Vielen Dank im Voraus...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren