Ответ: УЖЕ НЕ НАДО - написал... (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено SOIC 14 мая 2003 г. 11:58
В ответ на: Многоуважаемый All, поделитесь пожалуйста сырцом для работы с шиной SPI через USART на MSP430...(+) отправлено SOIC 14 мая 2003 г. 10:19


//----------------------------------------------------------------------------------------------
void ONSPI(unsigned char Device)
{
INT8U err;
OSMutexPend(SpiMutex, 0, &err);

UCTL0 = CHAR|SYNC|MM; // 8-bit character SPI master
UTCTL0 = SSEL0+SSEL1+STC; // UCLK = SMCLK
UBR00 = 0x03; // X MHz /3
UBR10 = 0x00; // X MHz /3
UMCTL0 = 0x00; // X MHz F modulation
ME1 |= USPIE0; // Enable USART0 SPI TXD/RXD ?
// IE1 &= 0xFF^URXIE0; // Disable USART0 RX interrupt
P3SEL |= 0x0E; // P3.1,2 = USART0 TXD/RXD/CLK
IFG1 &= 0xFF^UTXIFG0;

if(Device==0) SPI_PORT_SEL &= 0x5F;
else if(Device==1) SPI_PORT_SEL |= 0xA0;
else return;
}
//----------------------------------------------------------------------------------------------
void OFFSPI(void)
{
SPI_PORT_SEL &= 0x7F;
SPI_PORT_SEL |= 0x20;
OSMutexPost(SpiMutex);
}
//----------------------------------------------------------------------------------------------
void TXSPI(unsigned char value)
{
TXBUF0 = value;
while((IFG1 & UTXIFG0) == 0); // USART0 TX buffer ready?
IFG1 &= 0xFF^UTXIFG0;
}
//----------------------------------------------------------------------------------------------
unsigned char RXSPI(void)
{
TXBUF0 = 0xFF; // Dummy write (CLK gen)
while((IFG1 & UTXIFG0) == 0); // USART0 TX buffer ready?
IFG1 &= 0xFF^UTXIFG0;

return RXBUF0;
}
//----------------------------------------------------------------------------------------------


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru