Курсовая работа: Проектирование удаленного устройства индикации
unsignedcharx;
/* Установитьчастоту */
UBRROH = (unsigned char) (baudrate»8) ;
UBRROL = (unsigned char) baudrate;
/* Включитьприемник UART */ UCSRB = { (1 « RXCIE) | (1«RXEH) ) ;
У/Форматприемаданных: 8 битданных, 1 стоп-бит, проверканачетность UCSRC = (1«URSEL) I (3«UCSZO) | (1«UPM1) ;
/* Обнулитьбуфферприемника */ х = 0;
USARTJbcTail = х; USART_RxHead = х;
)
/* Процедурачтенияизприемника */ BYTEUSART_Receive( void }
{
unsignedchartmptail;
while( USART_RxHead == USART_RxTail ) /* Ждемпоступленияданных */ ;
tmptail = USART_RxTail + 1; /* Рассчетиндексабуффера */ USART_RxTail = tmptail;/* Сохранитьновелииндекс */
return USART_RxBuf[tmptail]; /* Вернутьданные */
>
unsigned char DatalnReceiveBuffer( void )
{
return ( USART_RxHead != USART_RxTail ); /* ВозвращаетОеслибуфферпуст */
}
/* Обработчикпрерыванияотприемника */ #pragma vector=USART_RXC_vect _interrupt void USART_RX_interrupt( void ) {
unsigned char data;
unsigned char tmphead;
/* Прочестьполученныеданные */
data = UDR;
/* Рассчетновогоиндекса */
tmphead = ( USARTJRxHead + 1 };
USART_RxHead = tmphead; /* СохранитьновыйиндексV
if ( tmphead == USART_RxTail ) (