Gast
#649395
hallo,
ich hab mal wieder ein Problem bei dem ich nicht alleine weiterkomme und
deshalb hoffe hier einen guten Rat zu bekommen...
Es handelt sich um folgendes: Ich möchte per USART an meinen uC
(ATmega48) senden und danach das gesendete wieder empfangen.
Das Senden senden klappt auch schon ganz gut(regelmäßige PWM am Pin),
aber der Pin fürs senden bleibt unberührt auf 5V Versorgungsspannung,
sprich empfangen funktioniert nicht.
Hier mein Quellcode:
void Init_Transmit(void)
{
unsigned char Data = 100;
//USART initialisieren
UBRR0 = 49; //Baudrate 10000
UCSR0B |= (1<<TXEN0); //enable transmitter
UCSR0C |= (1<<UCSZ00) | (1<<UCSZ01); //8 Bit character size
while(!(UCSR0A & (1<<UDRE0))) //wait for empty transmit buffer
{
}
UDR0 = Data; //put data into buffer, sends
the data
}
unsigned char Init_Receive(void)
{
unsigned char Data = 0;
//USART initialisieren
UBRR0 = 49; //Baudrate 10000
UCSR0B |= (1<<RXEN0); //enable reveiver
UCSR0C |= (1<<UCSZ00) | (1<<UCSZ01); //8 Bit character size
while(!(UCSR0A & (1<<UDRE0))) //wait for data to be received
{
}
return Data; //get and return reveived data
from buffer
}
void main(void)
{
DDRD |= (1<<DDD1); //TX output
DDRD &= ~(1<<DDD0); //RX input
unsigned char Data = 0;
while(1)
{
Init_Transmit();
Data = Init_Receive();
}
}
Vielen Dank schon mal im Vorraus für eure Beiträge...
Gruß Daniel