Estoy intentando comunicarme entre atmega128 y serialCom (PC),
pero me sale un error bastante extraño.
Cuando envío datos 0 a 255 (char) desde atmega128 a serialCom (PC)
, después de enviar 0x08, el bit alto se bloquea. (07 - > 18)
Para una mejor comprensión, adjunté una imagen sobre el error.
EsmiprimeracodificacióndecódigoenAVR,porloquenopudeencontrardóndeestámierror.
Aquíestámicódigofuente.
#include<avr/io.h>#include<util/delay.h>#include<avr/interrupt.h>#include"header.h"
unsigned char rx;
void Putch(unsigned char local_data)
{
while(!(UCSR0A & 0x20));
UDR0 = local_data;
}
char Getch(void)
{
while(!(UCSR0A & 0x80));
return UDR0;
}
void main(void)
{
UCSR0A = 0;
UCSR0B = (1<< RXEN0) | (1<<TXEN0); //UART0 Rx,Tx On
//UCSR0C = (1 << UCSZ01) | (1 << UCSZ00) | ( 0 << UMSEL0) | ( 0 << UMSEL1) | ( 0 << UPM00) | ( 0 << UPM01);
UCSR0C = 0x06;
UBRR0H = 0;
UBRR0L = 103;
unsigned char flag = 0;
int i = 0 ;
while(1)
{
flag = Getch();
for(i = 0 ; i < 255 ; i++)
Putch(i);
_delay_ms(5000);
}
}
Si tienes alguna idea sobre esta situación, por favor, coméntame.
thx.