Hi Josue! You are sending your characters inside a while loop, so they will be sent over and over again. But there is another problem - you do not wait until the transmit buffer is free again before you place a new character in it and this is why it only works when you single step over it because then there is enough time to send the character from the transmit shift register and move another from the transmit buffer to the shift register. In your case you are overwriting your transmit buffer. You should do something like this (interrupt driven would be better, of course - these while loops are delays that only waste time): while( 1 ) { while( !(UCA0IFG & UCTXIFG) ); UCA0TXBUF = 0x41; while( !(UCA0IFG & UCTXIFG) ); UCA0TXBUF = 0x42; while( !(UCA0IFG & UCTXIFG) ); UCA0TXBUF = 0x43; } Or make a function from it: while( 1 ) { send_uart_char( 0x41 ); send_uart_char( 0x42 ); send_uart_char( 0x43 ); } void send_uart_char( char character_to_send ) { while( !(UCA0IFG & UCTXIFG) ); UCA0TXBUF = character_to_send; } And for better reading, instead of writing HEX values... UCA0TXBUF = 0x41; ...you could also write: UCA0TXBUF = 'A'; Dennis
↧