Delbert Martin IV wrote:
I have done some more work with this and found that if the device is freshly programmed, it will work until I restart the board. Once I restart it, it begins to send 2 bytes instead of 1, I will Post some Code.


#define waitSPI_RXTX() while((IFG1 & URXIFG0) == 0)

in slau049c.pdf, they talk about UTXIFG not RX. and a colleague that used the SPI did this: write to TXBUF wait for TXIFG, then wait for RXIFG, finaly read RXBUF

void setupSPI() {
U0CTL = 1; /* Software Reset */
U0TCTL = 0x73;
U0BR0 = 0x02;
U0BR1 = 0x00;
U0MCTL = 0;
ME1 |= USPIE0;
U0CTL = CHAR+SYNC+MM;
}

char spiReadWriteByte(char b){
char a;
U0TXBUF = b;
waitSPI_RXTX();
a = U0RXBUF;
return a;
}

Chris Liechti wrote:

Delbert Martin IV wrote:

When I Send a byte with USART1 on an MSP430F149 It double Sends the byte, which causes CHAOS to anything I am working with. I'm probably not doing something right, anyone know what might cause this phenomenon.



i'm using the USART1 without problems

It sends the second byte about 1 uS after the first, which is faster than my program does it, ~68uS. So Im pretty sure its something in hardware.



are you sure you're not writing the byte twice to the TXBUF1?

i usualy poll TXEPT to ensure that the last byte was sent:

void putchar(char c) {
    while (!(TXEPT & UTCTL1)) {}
    TXBUF1 = c;
}

chris


-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mspgcc-users






Reply via email to