//********************************************************** // // Author(s)...: Pashgan http://ChipEnable.Ru // // Target(s)...: ATmega8535 // // Compiler....: IAR EWA 5.11A // // Description.: UART/USART. Получение первых результатов // // Data........: 15.12.09 // //********************************************************** #include "usart.h" //однобайтный буфер volatile unsigned char usartRxBuf = 0; //инициализация usart`a void USART_Init(void) { UBRRH = 0; UBRRL = 51; //скорость обмена 9600 бод UCSRB = (1<<RXCIE)|(1<<RXEN)|(1<<TXEN); //разр. прерыв при приеме, разр приема, разр передачи. UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); //размер слова 8 разрядов } //отправка символа по usart`у void USART_SendChar(unsigned char sym) { while(!(UCSRA & (1<<UDRE))); UDR = sym; } //чтение буфера __monitor unsigned char USART_GetChar(void) { unsigned char tmp = usartRxBuf; usartRxBuf = 0; return tmp; } //прием символа по usart`у в буфер #pragma vector=USART_RXC_vect __interrupt void usart_rxc_my(void) { usartRxBuf = UDR; }