0

MSP430 Launchpad を使用しています。具体的には、マイクロコントローラ MS430G2553 を使用しています。MS430G2230 用に設計されたコードをコンパイルしようとしましたが、問題は、コードの一部が MS430G2553 と一致しないことです。これがコードです

void USI_Init (void)
{
 // configure SPI
 USICTL0 |= USISWRST;                      // USI in reset
 USICTL0 = USICTL0 | USILSB;               // Least Significant Bit first
 USICTL0 |= USIPE7 + USIPE6 + USIPE5 + USIMST + USIOE; // Port, SPI Master
 USICTL1 |= USICKPH;                       // flag remains set
 USICKCTL = USIDIV_1 + USISSEL_2;          // /2 SMCLK
 USICTL0 &= ~USISWRST;                     // USI released for operation
 USICNT = USICNT | 0x50;                   // 16 bit mode; 16 bit to be    transmitted/received
 return;
}


これは機能しない2番目のルーチンです


#pragma vector=WDT_VECTOR
__interrupt void Write_Matrix(void)
{
static unsigned char index=0;

 P1OUT |= DATA_LATCH_PIN;
 P1OUT &= ~DATA_LATCH_PIN;

  USICTL1 &= ~USIIFG;           // Clears the interrupt flag
  USISRH = 1<<index;            // Move the index of the column in the high bits of USISR
  USISRL = Matrix[index];       // Move the index of the rows (value of Matrix[index]) in the low bits of USIRS
  USICNT = USICNT | 0x10;       // 16 bit format
 index = (index+1) & 7;

 return;
}

何か案は?ありがとう

4

1 に答える 1

2

まず、これら 2 つのプロセッサ ファミリ間で 100% 移植可能なコードを期待するべきではありません。MSP430G2553 ははるかに価値のあるライン プロセッサであり、MSP430G2230 よりも多くのペリフェラルが付属しています。

次の図を参照してください。

MSP430G2230 機能図

MSP430G2230 機能図

MSP430G2553 機能図

MSP430G2553 機能図

ご覧のとおり、これらの MCU は大きく異なります。

MSP430G2553 にはペリフェラルがないため、最初のルーチンは機能しませんUSI。代わりにUSCIペリフェラルを使用して SPI 通信を行います。代わりにこのペリフェラルを使用するには、コードを変更する必要があります。詳細については、ユーザーズ ガイドを参照してください。

2 番目のルーチンは、周辺機器がないために機能しませんUSIUSIレジスタへの参照に注意してください: など。ペリフェラルUSICTL1 &= ~USIIFG;を使用するには、コードをもう一度変更する必要があります。USCI

于 2014-02-10T13:25:07.210 に答える