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
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;
|
|
} |