Прием - передача через UART
Материал из Automata.
(Различия между версиями)
м (Полностью удалено содержимое страницы) |
м (Правки Kern (обсуждение) откачены к версии 95.104.138.49) |
||
Строка 1: | Строка 1: | ||
+ | #include <avr/io.h> | ||
+ | #include <stdint.h> | ||
+ | #define BAUDRATE 9600 | ||
+ | |||
+ | int main(void) | ||
+ | { | ||
+ | UBRRH = 0; | ||
+ | UBRRL = 51; | ||
+ | UCSRB = _BV(RXEN)|_BV(TXEN); | ||
+ | UCSRC = _BV(URSEL)|_BV(USBS)|_BV(UCSZ0)|_BV(UCSZ1); | ||
+ | static uint8_t x=1; | ||
+ | while (1) { | ||
+ | while (!(UCSRA & _BV(RXC))); | ||
+ | uint8_t x = UDR; | ||
+ | while (!(UCSRA & _BV(UDRE))); | ||
+ | UDR = x++; | ||
+ | } | ||
+ | } |
Текущая версия
#include <avr/io.h> #include <stdint.h>
#define BAUDRATE 9600
int main(void) { UBRRH = 0; UBRRL = 51; UCSRB = _BV(RXEN)|_BV(TXEN); UCSRC = _BV(URSEL)|_BV(USBS)|_BV(UCSZ0)|_BV(UCSZ1); static uint8_t x=1; while (1) { while (!(UCSRA & _BV(RXC))); uint8_t x = UDR; while (!(UCSRA & _BV(UDRE))); UDR = x++; } }