А я использую следующее:
Мы знаем скорость тактирования, и нам нужна скорость SPI
После #include "msp430x16x.h" вставляем определение:
Код
#define Fosc 8000000 //Hz - Частота тактирования кварца или внутреннего генератора
#define Cspi 4800 //Bit - требуемая скорость SPI
#define Kff Fosc/Cspi
Инициализация SPI выглядит так:
Код
ME2 |= USPIE1;
U1CTL = 0x5E; //#01010111b; The inactive level is high, ACLC
U1TCTL = 0x12; //#0001 0010b p294(Slau049f)
U1BR0 = Kff%256; // Наша скорость будет здесь
U1BR1 = Kff/256; // и здесь
U1MCTL = 0x00;
U1CTL &=~0x01;
Для MSP430F2*** инициализация будет выглядеть иначе, но смысл тот же.
Вот так:
Код
UCB1CTL0 |= UCCKPL + UCMST + UCSYNC; // The inactive state is high, Master mode, Synchronous Mode
UCB1CTL1 |= UCSWRST + UCSSEL_2; // SMCLK, Enabled. USCI logic held in reset state.
UCB1BR0 = Kff%256;
UCB1BR1 = Kff/256;
UCB1CTL1 &=~UCSWRST; // Disabled. USCI reset released for operation.
Сообщение отредактировал FREEKER - Jan 10 2010, 11:04