help with cc1100 software

Hello.

I’m implementing two software for two msp430 connected with CC1100. I’m using 2 smartrf04EB, i eliminated 0 ohms resistors 114,115,116,117, 121, 122 and i have connected on the P11 msp430f427. I used MSP430 Interface to CC11002500 Code Library, but i change file main.c, TI_CC_msp430.h, TI_CC_hardware board.h. I can’t trasmitt packet between the two transceivers. What is it wrong? here is the two main file:

MAIN TX:

#include “include.h”

static unsigned int results; // Variable to store SD16 conversion results

static unsigned char ADCH, ADCL; //Variable to store first and second 8 bit ADC conversion

char txBuffer[4];

void main (void)

{

WDTCTL = WDTPW + WDTHOLD; // Stop WDT

FLL_CTL0 |= XCAP14PF; // Configure load caps

TI_CC_SPISetup(); // Initialize SPI port

TI_CC_PowerupResetCCxxxx(); // Reset CCxxxx

writeRFSettings(); // Write RF settings to config reg

TI_CC_SPIWriteReg(TI_CCxxx0_PATABLE, 0xC0);//Write PATABLE

SD16CTL = SD16REFON+SD16SSEL0; // 1.2V ref, SMCLK

SD16INCTL2 = SD16INTDLY_1; // Interrupt on 3rd sample

SD16CCTL2 = SD16IE; // Enable interrupt

for (i = 0; i < 0x3600; i++); // Delay for 1.2V ref startup

_EINT(); // Enable general interrupts

SD16CCTL2 |= SD16SC; // Set bit to start conversion

_BIS_SR(LPM3_bits + GIE); // Enter LPM3, enable interrupts

}

#pragma vector=SD16_VECTOR

__interrupt void SD16ISR(void)

{

switch (SD16IV)

{

case 2: // SD16MEM Overflow

break;

case 4: // SD16MEM0 IFG

break;

case 6: // SD16MEM1 IFG

break;

case 8: // SD16MEM2 IFG

results = SD16MEM2; // Save CH2 results (clears IFG)

ADCH= (results >> 8) & 0x00FF;

ADCL= results & 0x00FF;

// Build packet

txBuffer[0] = 2; // Packet length

txBuffer[1] = ADCH; // first 8 bit

txBuffer[2] = ADCL; // second 8 bit

RFSendPacket(txBuffer, 3); // Send value over RF

P2IFG &= ~TI_CC_GDO0_PIN; // After pkt TX, this flag is set. // Clear it.

break;

}

}

MAIN RX:

#include “include.h”

static char rxBuffer[2];

void main (void)

{

WDTCTL = WDTPW + WDTHOLD; // Stop WDT

TI_CC_LED_PxDIR = TI_CC_LED1 + TI_CC_LED2; //Outputs

TI_CC_SPISetup(); // Initialize SPI port

TI_CC_PowerupResetCCxxxx(); // Reset CCxxxx

writeRFSettings(); // Write RF settings to config reg

TI_CC_SPIWriteReg(TI_CCxxx0_PATABLE, paTable);//Write PATABLE

TI_CC_SPIStrobe(TI_CCxxx0_SRX); // Initialize CCxxxx in RX mode.

_BIS_SR(LPM3_bits + GIE); // Enter LPM3, enable interrupts

}

// The ISR assumes the int came from the pin attached to GDO0 and therefore

// does not check the other seven inputs. Interprets this as a signal from

// CCxxxx indicating packet received.

#pragma vector=PORT2_VECTOR

__interrupt void port2_ISR (void)

{

char len=2; // Len of pkt to be RXed (only addr

// plus data; size byte not incl b/c

// stripped away within RX function)

RFReceivePacket(rxBuffer,&len); // Fetch packet from CCxxxx

P2IFG &= ~TI_CC_GDO0_PIN;

return;

}

The software is blocked in this point: (CC1100-CC2500.c)

void RFSendPacket(char *txBuffer, char size)

{

TI_CC_SPIWriteBurstReg(TI_CCxxx0_TXFIFO, txBuffer, size); // Write TX data

TI_CC_SPIStrobe(TI_CCxxx0_STX); // Change state to TX, initiating

// data transfer

while (!(TI_CC_GDO0_PxIN&TI_CC_GDO0_PIN));

// Wait GDO0 to go hi → sync TX’ed

while (TI_CC_GDO0_PxIN&TI_CC_GDO0_PIN);

Why pin GDO0 doesn’t go hi?