Здравствуйте. Опыт работы с микроконтроллерами MSP430 невелик, посему ищу вашей помощи. Микроконтроллер MSP430F149. Суть задачи в том, чтобы через SPI передать несколько команд (код 24 бита размером), а с гироскопа считать ответ (16-битный). Вроде все настройки SPI прописал, но все равно не работает. Коллега посоветовал ввести 2 переменные ("Beck" и "Ham"), а 24 бита засылать побайтно по очереди. Тем не менее, в ответ с гироскопа я получаю какое-то непотребство. Заранее спасибо. Вот часть кода:
IFG2 &= ~URXIFG1;
while (!(IFG2 & UTXIFG1));
P5OUT &= ~0x20; //CS_LOW
U1TXBUF = 0x94;
U1TXBUF = 0x00;
Beck = U1RXBUF; // переменная номер один
U1TXBUF = 0x00;
while (!(IFG2 & URXIFG1));
Ham = U1RXBUF; // переменная номер два
delay(5000);
U1TXBUF = 0x94;
U1TXBUF = 0x00;
Beck = U1RXBUF;
U1TXBUF = 0x00;
while (!(IFG2 & URXIFG1));
Ham = U1RXBUF;
while (!(U1TCTL&TXEPT)); //CS_HIGH
P5OUT |= 0x20;
delay(5000);
Beck = U1RXBUF;
delay (1500);
P5OUT &= ~0x20; //CS_LOW
U1TXBUF = 0x40;
U1TXBUF = 0x00;
Beck = U1RXBUF;
U1TXBUF = 0x00;
while (!(IFG2 & URXIFG1));
Ham = U1RXBUF;
delay(5000);
while (!(U1TCTL&TXEPT)); //CS_HIGH
P5OUT |= 0x20;
delay (1500);
while ( !( IFG2 & URXIFG1 )) ; // Waiting for URXIFG0
while (!(U1TCTL&TXEPT)) ;