Divemen
Junior Member level 1
msp430 usart spi
Hello,
I start programming in "C" with the MSP430 and have the following problem:
Configuration:
- MSP430F149 on Headerboard from Olimex and the JTAG from Olimex.
- IAR Kickstart V1.26A
I have a problem by the use of USART1 in SPI Mode.
I use a 2 x 6 Numerical Display over the SPI of USART 1. (see below)
In run mode, i can only get 4 of 6 Digits on the Display but in single step
all works fine. I tryed to do this at lower speed but it is always the same.
What is wrong?
Can anybody help me?
Thanks Divemen
My Source:
void init_numerical_LCD(void)
{
ME2 |= USPIE1; // Enable USART1 SPI mode
UTCTL1 = CKPH+SSEL1+SSEL0+STC; // SMCLK, 3-pin mode
UCTL1 = CHAR+SYNC+MM; // 8-bit SPI Master **SWRST**
UBR01 = 0x80; // UCLK/128
UBR11 = 0x0; // 0
UMCTL1 = 0x00; // no modulation
P5SEL |= 0x0A; // P5.1-3 SPI option select
P5DIR |= 0x01; // P5.0 output direction
}
void write_Num_Display(void)
{
char x[] = {5,2,3,7,4,8};
signed char y,z;
for (z = 6; z > 0;z--)
{
y = x[z-1];
while ((IFG2 & UTXIFG1) == 0); // USART1 TX buffer ready?
TXBUF1 = Display_Table[y];
}
P5OUT |= 0x01; // Latch data into LCD P5.0 =1
P5OUT &= ~0x01; // P5.0 = 0
}
const char Display_Table[] =
{0x77, // 0 numerical Display output value
0x14, // 1
0xB3, // 2
0xB6, // 3
0xD4, // 4
0xE6, // 5
0xE7, // 6
0x34, // 7
0xF7, // 8
0xF6, // 9
0xF5, // A
0xC7, // B
0x63, // C
0x97, // D
0xE3, // E
0xE1 // F
};
Hello,
I start programming in "C" with the MSP430 and have the following problem:
Configuration:
- MSP430F149 on Headerboard from Olimex and the JTAG from Olimex.
- IAR Kickstart V1.26A
I have a problem by the use of USART1 in SPI Mode.
I use a 2 x 6 Numerical Display over the SPI of USART 1. (see below)
In run mode, i can only get 4 of 6 Digits on the Display but in single step
all works fine. I tryed to do this at lower speed but it is always the same.
What is wrong?
Can anybody help me?
Thanks Divemen
My Source:
void init_numerical_LCD(void)
{
ME2 |= USPIE1; // Enable USART1 SPI mode
UTCTL1 = CKPH+SSEL1+SSEL0+STC; // SMCLK, 3-pin mode
UCTL1 = CHAR+SYNC+MM; // 8-bit SPI Master **SWRST**
UBR01 = 0x80; // UCLK/128
UBR11 = 0x0; // 0
UMCTL1 = 0x00; // no modulation
P5SEL |= 0x0A; // P5.1-3 SPI option select
P5DIR |= 0x01; // P5.0 output direction
}
void write_Num_Display(void)
{
char x[] = {5,2,3,7,4,8};
signed char y,z;
for (z = 6; z > 0;z--)
{
y = x[z-1];
while ((IFG2 & UTXIFG1) == 0); // USART1 TX buffer ready?
TXBUF1 = Display_Table[y];
}
P5OUT |= 0x01; // Latch data into LCD P5.0 =1
P5OUT &= ~0x01; // P5.0 = 0
}
const char Display_Table[] =
{0x77, // 0 numerical Display output value
0x14, // 1
0xB3, // 2
0xB6, // 3
0xD4, // 4
0xE6, // 5
0xE7, // 6
0x34, // 7
0xF7, // 8
0xF6, // 9
0xF5, // A
0xC7, // B
0x63, // C
0x97, // D
0xE3, // E
0xE1 // F
};