ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
7 июля
211989 Топик полностью
Михаил Е. (21.09.2010 12:32, просмотров: 186) ответил z00f на Ну получается что по прерыванию
На самописце не смотрел, но вот так у меня работает  //*************** Передача байта ******************** #pragma vector=USART0_UDRE_vect static __interrupt void USART0_UDRE() // прерывания { if(UART0Ptr->OutputNum--) // последний? UDR0 = *(UART0Ptr->OutputPtr++); // передать байт else { UDRIE0 = 0; // если все байты, запретить прерывания TXCIE0 = 1; // разрешить прерывания по концу передачи } } //************ Завершение передачи ****************** #pragma vector=USART0_TXC_vect static __interrupt void USART0_TXC() // прерывания { UART0Ptr->DE = 0; // передатчик RS485 выключен TXCIE0 = 0; // конец передачи, запретить прерывания UART0Ptr->InputPtr = UART0Ptr->InputByffer; // указатель буфера на начало UART0Ptr->OutputPtr = UART0Ptr->OutputBuffer; // указатель буфера на начало RXEN0 = 1; // разрешен прием RXCIE0 = 1; // разрешены прерывания от приемника UART 1 }