This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC430 RF 中断

Guru**** 2535750 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/570591/cc430-rf-interrupt

你好!

我的代码基于射频示例"CC430射频代码示例- TX 和 RX (可变数据包长度=< FIFO 大小)"、但我想分别将 RX 和 TX 的中断从 RFIFG9分离到 RFIFG4和 RFIFG8。

我`m CC430芯片上的射频中断有问题。 标志 RFIFG8的正边沿未被置位、但是具有负边沿的 RFIFG9被置位。 它们都是 TX FIFO 下溢。

原始中断处理程序:

#pragma vector=CC1101_vector
__interrupt void CC1101_ISR (void)
{
switch (__even_in_range (RF1AIV、32)) //确定无线电内核中断的优先级
{
情况0:中断; //无射频内核中断挂起
案例2:中断; // RFIFG0
案例4:中断; // RFIFG1
案例6:中断; // RFIFG2
案例8:中断; // RFIFG3
案例10:中断; // RFIFG4
案例12:中断; // RFIFG5
案例14:中断; // RFIFG6
案例16:中断; // RFIFG7
案例18:中断; // RFIFG8
案例20: // RFIFG9
if (正在接收) //数据包的 RX 末尾
{
//从 FIFO 读取长度字节
RxBufferLength = ReadSingleReg ( RXBYTES );
ReadBurstReg (RF_RXFIFORD、RxBuffer、RxBufferLength);

//在此处停止以查看 RxBuffer 的内容
__no_operation();

//检查 CRC 结果
if (RxBuffer[CRC_LQI_IDX]和 CRC_OK)
P1OUT ^= BIT0; //切换 LED1
}
否则 IF (发送) //数据包的 TX 结束
{
RF1AIE &=~BIT9; //禁用 TX 数据包结束中断
P3OUT &=~BIT6; //发送后关闭 LED
发送= 0;
P1OUT ^= BIT0; //切换 LED1
}
其他 while (1); //陷阱
中断;
判例22:中断; // RFIFG10
案例24:中断; // RFIFG11
判例26:中断; // RFIFG12
案例28:中断; // RFIFG13
案例30:中断; // RFIFG14
案例32:中断; // RFIFG15
}
__BIC_SR_REGISTER_ON_EXIT (LPM3_BITS);
} 

我的中断处理程序:

#pragma vector=CC1101_vector
__interrupt void CC1101_ISR (void)
{
switch (__even_in_range (RF1AIV、32)) //确定无线电内核中断的优先级
{
情况0:中断; //无射频内核中断挂起
案例2:中断; // RFIFG0
案例4:中断; // RFIFG1
案例6:中断; // RFIFG2
案例8:中断; // RFIFG3
案例10: // RFIFG4
{
P1OUT ^= BIT0;
RFdiBufL = ReadSingleReg ( RXBYTES );
ReadBurstReg (RF_RXFIFORD、RFdiBuf、RFdiBufL);
} 中断;
案例12:中断; // RFIFG5
案例14:中断; // RFIFG6
案例16:中断; // RFIFG7
案例18: // RFIFG8
{
TXDATA=1;
} 中断;
情况20:TXDATA=1;中断; // RFIFG9
判例22:中断; // RFIFG10
案例24:中断; // RFIFG11
判例26:中断; // RFIFG12
案例28:中断; // RFIFG13
案例30:中断; // RFIFG14
案例32:中断; // RFIFG15
}
} 

我的射频设置:

ResetRadioCore();InitRadio();
WriteSingleReg (MCSM1、0b1100);

RF1AIE |= BIT4 + BIT8; 

当我尝试使用 RFIFG8标志时、TXDATA 未设置、但当我使用 RFIFG9 (当然使用正确的设置)时、标志设置为设置。 有人可以帮助吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的帖子已移至 MSP 论坛、因为它们是从软件角度支持 CC430的论坛