You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

33 lines
728 B

/*
* USART0Custom.c
*
* Created: 26.10.2023 17:37:08
* Author: Katya
*/
#include "USART0Custom.h"
void USART_Init (uint16_t speed) {
// Ст. и мл. скорость
UBRR0H = 0;
UBRR0L = (uint8_t)(speed);
// Прерывания при приеме, вкл прием/передача
UCSR0B = (1 << RXEN0) | (1 << TXEN0);
// 8 бит данных, 2 стоп-бита
UCSR0C = (1<<USBS0) | (3<<UCSZ00);
}
void USART_Transmit (uint8_t data) {
while (!(UCSR0A & (1<<UDRE0))); // Ожидание конца передачи
UDR0 = data; // Начало передачи
}
uint8_t USART_Receive() {
while (!(UCSR0A & (1 << RXC0))); // Ожидание конца приема
return UDR0; // Принятые данные
}
uint8_t USART_DataAvailable() {
// Пришел ли пакет в приемную шину
return (UCSR0A & (1 << RXC0)) ? 1 : 0;
}