Код: Выделить всё
#include <avr/io.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#define F_CPU 8000000UL
#define REDE_PORT PORTD
#define REDE_PIN PD2
#define TRANSMIT REDE_PORT|=1<<REDE_PIN;
#define RECIEVE REDE_PORT&=~(1<<REDE_PIN);
void USART_Init( unsigned int ubrr)//Инициализация модуля USART
{
/* Задаем скорость работы USART */
UBRRH = (unsigned char)(ubrr>>8);
UBRRL = (unsigned char)ubrr;
/* Разрешаем прием и передачу по USART */
UCSRB=(1<<RXEN)|( 1<<TXEN);
UCSRB |= (1<<RXCIE);
UCSRC |= (1 << URSEL)|
(1 << UCSZ1)|(1 << UCSZ0);
}
void USARTTransmitChar(char c) {
while(!( UCSRA & (1<<UDRE)));
UDR = c;
}
ISR(USART_RXC_vect )
{
TRANSMIT
USARTTransmitChar('H');
RECIEVE
_delay_ms(100);
}
int main(void)
{
sei();
USART_Init(51);
while (1){}
}
На картинке пришедшие данные
- Вложения
-
- Screenshot_2021-03-29_21-52-12.png
- (82.67 КБ) 107 скачиваний

