ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
28 апреля
53646 Топик полностью
Vad (12.03.2006 18:20, просмотров: 1) ответил rezident на Ниччче не понятно! Нельзя ли дополнить словесным описанием "чего вы хотите" и кодом того места где инициализируете UART?
Уточнение по многопроцессорному режиму Добрый день. Желание следующее: MSP430 - Slave устройство. Master передает ему посылку, MSP буферезирует ее и после окончания посылки (как я это понял) он автоматически должен определить 10 единичных бит на линии -признак свободной линии,выставляет флаг обрыва посылки BRK и сваливается в обработку прерывания приемника UART. Здесь я оцениваю наличие флага BRK и если он '1'- считаю, что посылка закончилась, находится в буфере и я начинаю обрабатывать ее. Инициирую UART следующей функцией: void UART_init() { P3SEL = 0x30; // P3.3,4 = USART0 TXD/RXD ME2 |= UTXE0 + URXE0; // Enabled USART0 TXD/RXD UCTL0 |= CHAR; // 8-bit character, SWRST=1 UTCTL0 |= SSEL0; // UCLK = ACLK UBR00 = 0x03; // 9600 from 32768 hz UBR10 = 0x00; // UMCTL0 = 0x4a; // Modulation UCTL0 &= ~SWRST; // Initialize USART state machine IFG2 &= ~UTXIFG0; // Clear inital flag on POR IE2 |= URXIE0 + UTXIE0; // Enable USART0 RX/TX interrupt U0RCTL |= URXEIE; } Обработчик прерывания приема упрощен. Хочу на данном этапе просто попасть в обработку флага BRK и увидеть увеличение переменной Reset по окончании каждой посылки #pragma vector=UART0RX_VECTOR __interrupt void usart0_rx (void) { if(U0RCTL & BRK) { Reset++; } U0TXBUF = U0RXBUF; U0RCTL &= ~URXWIE; } Спасибо.