ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
20 мая
41575 Топик полностью
rezident (14.10.2005 16:43, просмотров: 2) ответил Xanoy на Первый пункт я седне проверю, второй ок, а вот по третьему->
Ответ: Изменение скорости передачи связано с изменением регистров USART. Поэтому перед изменением регистров устанавливаете бит SWRST, а после изменения сбрасываете его, чтобы USART мог работать. Применительно к вашему примеру это будет примерно так #pragma vector = USART0TX_VECTOR __interrupt void UART_tx (void) { switch ( tx.count) { case 0: U0CTL|=SWRST; // добавлено мной U0BR0 = (u08)N_UBR_Break; U0BR1 = (u08)(N_UBR_Break>>8); U0CTL&=~SWRST; // добавлено мной U0TXBUF = 0; ++tx.count; break; case 1: U0CTL|=SWRST; // добавлено мной U0BR0 = (u08)N_UBR; U0BR1 = (u08)(N_UBR>>8); U0TXBUF = tx.buffer[tx.count-1]; U0CTL&=~SWRST; // добавлено мной ++tx.count; break; case UART_TX_BUFFER_SIZE: U0TXBUF = tx.buffer[tx.count-1]; tx.count = 0; break; default: U0TXBUF = tx.buffer[tx.count-1]; ++tx.count; break; } }