Wysylajać dane z terminalu "AT560" program odpowiada mi "AT50", czemu nie odpowiada "AT560"
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#define F_CPU 16000000UL
#define BAUD 9600
#define MYUBRR F_CPU/16/BAUD-1
char* wys;
void usart_init(unsigned int ubrr)
{
UBRRH = (unsigned char)(ubrr>>8);
UBRRL = (unsigned char)ubrr;
UCSRB = (1<<RXEN)|(1<<TXEN);
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
}
void nadaj_znak(unsigned char data)
{
while(!(UCSRA&(1<<UDRE)));
UDR=data;
}
unsigned char odbierz_znak(void)
{
while(!(UCSRA & (1<<RXC)) );
return UDR;
}
void wyslij_slowo(char *dana)
{
int dlugosc_slowa, k=0;
dlugosc_slowa=strlen(dana);
for(k=0;k<dlugosc_slowa;k++)
{
nadaj_znak(dana[k]);
}
}
int main(void)
{
DDRD=0x02;
PORTD=0x00;
usart_init(MYUBRR);
_delay_ms(100);
nadaj_znak(0x0D);
wyslij_slowo("Witam w programie testowym ");
while(1)
{
wys=odbierz_znak();
_delay_ms(100);
nadaj_znak(wys);
_delay_ms(100);
}
}