hi,
i am using a CC430 and i am trying to use the RFIFG10 interrupt to detect when i received a valid package. i have successfully used the CC430 RF example code which uses RFIFG9 and then manually checks the CRC. i was hoping that i could skip that by just using RFIFG10, but maybe i am interpreting the datasheet wrong:
the CC430 datasheet states:
RFIFG10 - Positive edge: Packet received with CRC OK.
i am enabling the ISR like such:
void receiveOn()
{
RF1AIES &= ~BITA; // positive edge of RFIFG10
RF1AIFG &= ~BITA; // Clear a pending interrupt
RF1AIE |= BITA; // Enable the interrupt
Strobe( RF_SRX );
}
and my ISR looks like this:
#pragma vector=CC1101_VECTOR
__interrupt void CC1101_ISR(void)
{
switch(RF1AIV)
{
case RF1AIV_RFIFG10:
{
RxBufferLength = ReadSingleReg( RXBYTES );
ReadBurstReg(RF_RXFIFORD, RxBuffer, RxBufferLength);
rssi = Mrfi_CalculateRssi(RxBuffer[RSSI_IDX]);
__no_operation();
break;
}
}
__bic_SR_register_on_exit(LPM3_bits);
}
the strange thing is that i get an interrupt only once. the packet received is valis as expectd, but i never get another ISR. when using the RF1AIV_RFIFG9 example from the TI example code for the CC430, i get valid ISR's for every packet.
so what's the suggest ISR to use? RF1AIV_RFIFG10 or RF1AIV_RFIFG9 ? i would like to avoid getting an interrupt for packet that have no valid CSR or are not the correct device address. only for packets which are valid and actually for this device.
any help is greatly aprechiated.
thanks,
-r