Цитата(KARLSON @ Aug 16 2012, 07:21)

Я в ассемблере не бум-бум. Вот только недавно закончилась тема по MSP430x5xx, с отладчиком работала без нет, проблема была в настройке тактирования.
Вроде разобрался
С тактированием все было правильно.
Проверял я на макетной платке, а интерфейс 232 было лень припаивать и взял валявшийся рядом кусок платы с 485. А на этой платке 485 всегда приемник разрешен был, соответственно получалась каша из переданых и тут-же принятых байт.
Теперь вот другой вопрос образовался. Данные лежат в ОЗУ. ТХ буфер - 8 битный. регистры - 16 битные
в итоге передаются только четные байты. Эту проблему я тоже обошел добавив флаг на передачу четных\нечетных байт и свопая старшую и младшие части регистра.
Как еще можно корректно организовать вывод в uart из памяти?
в основном цикле устанавливаем указатель на начало буфера
mov #ячейка_памяти,R14
в прерывании
USCIA0_UART_int: ;
add &UCA0IV, PC ; Add offset to jump table
reti ; Vector 0: No interrupt
jmp RXIFG_ISR ; Vector 2: RXIFG
TXIFG_ISR: ; Vector 4: TXIFG
bit.b #fl_tx_start,flags_uart
jz error_transmit
dec.b tx_counter
jnz tx_next_byte
bic.b #fl_tx_start,flags_uart
bis.b #fl_tx_complete,flags_uart
tx_next_byte:
mov.b @r14+,&UCA0TXBUF ;
reti
error_transmit:
bic.b #UCTXIFG,&UCA0IFG
bic.b #fl_tx_start,flags_uart
bic.b #fl_tx_complete,flags_uart
mov.b #0x00,tx_counter
reti ; Return