В примере, привёл ниже, даны следующие две функции. Не понятно, почему скорость SPI инициализируется нулём? В примечании написано
UxBRx Биты 7-0 Генератор скорости передачи использует содержимое {UxBR1+UxBR0} для установки скорости передачи. Наименьший коэффициент деления равен двум.
Больше в коде ни где нет обращения к регистрам UCB1BR0 и UCB1BR1.
Код
/********************************************************************************
***
* @fn halRadioSpiInit
*
* @brief Initalise Radio SPI interface
*
* @param none
*
* @return none
*/
static void halRadioSpiInit(uint32 divider)
{
UCB1CTL1 |= UCSWRST; // Put state machine in reset
UCB1BR0 = LO_UINT32(divider);
UCB1BR1 = HI_UINT32(divider);
P5DIR |= 0x01;
P5SEL |= 0x0E; // P7.3,2,1 peripheral select (mux to ACSI_A0)
UCB1CTL1 = UCSSEL0 | UCSSEL1; // Select SMCLK
UCB1CTL0 |= UCCKPH | UCSYNC | UCMSB | UCMST; // 3-pin, 8-bit SPI master, rising edge capture
UCB1CTL1 &= ~UCSWRST; // Initialize USCI state machine
}
……………………………
/********************************************************************************
***
* @fn halAssyInit
*
* @brief Initialize interfaces between radio and MCU
*
* @param none
*
* @return none
*/
void halAssyInit(void)
{
halRadioSpiInit(0);
halMcuRfInterfaceInit();
#ifndef MRFI_CC2520
halDigioConfig(&pinRadio_GPIO0);
#endif
}
***
* @fn halRadioSpiInit
*
* @brief Initalise Radio SPI interface
*
* @param none
*
* @return none
*/
static void halRadioSpiInit(uint32 divider)
{
UCB1CTL1 |= UCSWRST; // Put state machine in reset
UCB1BR0 = LO_UINT32(divider);
UCB1BR1 = HI_UINT32(divider);
P5DIR |= 0x01;
P5SEL |= 0x0E; // P7.3,2,1 peripheral select (mux to ACSI_A0)
UCB1CTL1 = UCSSEL0 | UCSSEL1; // Select SMCLK
UCB1CTL0 |= UCCKPH | UCSYNC | UCMSB | UCMST; // 3-pin, 8-bit SPI master, rising edge capture
UCB1CTL1 &= ~UCSWRST; // Initialize USCI state machine
}
……………………………
/********************************************************************************
***
* @fn halAssyInit
*
* @brief Initialize interfaces between radio and MCU
*
* @param none
*
* @return none
*/
void halAssyInit(void)
{
halRadioSpiInit(0);
halMcuRfInterfaceInit();
#ifndef MRFI_CC2520
halDigioConfig(&pinRadio_GPIO0);
#endif
}