您好!
我运行 MSP@1MHz。 SPI 处于主模式。 出于某种原因,我在字节移出后测量大约50us 的延迟,直到 SPI_TX_BYTE ()函数中 CS 设置回1。
这是函数和 IRQ 代码。
您是否知道导致延迟的原因?
Peter
//通过 SPI 发送一个字节
内联 void SPI_TX_BYTE (uint8_t 数据){
_txLen=0;
while (!(UCA0IFG&UCTXIFG)); // USCI_A0 TX 缓冲器准备就绪?
爪形离合器_SET_cs (0);
UCA0TXBUF = DATA; //发送一个字符
_bis_SR_register (LPM0_Bits + GIE); //进入低功耗模式一次
__no_operation();
爪形离合器_SET_cs (1);
}
#pragma vector=USCI_A0_Vector
_interrupt void USCI_A0_ISR (void)
{
switch (__evo_in_range (UCA0IV、4))
{
情况0:中断; //向量0 -无中断
情况2:{ //向量2 - RXIFG
while (!(UCA0IFG&UCTXIFG)); // USCI_A0 TX 缓冲器准备就绪?
if (_txLen!=0){
_PTX++;
UCA0TXBUF =*;
_txLen--;
}否则{
//唤醒主循环
_BIC_SR_REGISTER_ON_EXIT (LPM0_BITS);
}
中断;
}
情况4: //向量4 - TXIFG
中断;
默认值:break;
}
}