Gast
#3291658
Hey,
unter Verwendung des ATMega32 auf 8Mhz laufen folgende beiden Programme
auf den uCs:
#include <avr/io.h>
#include <util/delay.h>
//Transmitter
int main(void)
{
DDRA &= ~(1 << PA0);
int UBBRValue = 51; //9600 Baud
UBRRH = (unsigned char) (UBBRValue >> 8);
UBRRL = (unsigned char) UBBRValue;
UCSRB = (1 << TXEN);
//8bit, 2 Stopp
UCSRC = (1 << USBS) | (3 << UCSZ0);
while (1)
{
if ((PINA & (1<<PA0))){
//Warten
while (! (UCSRA & (1 << UDRE)) );
//Screiben in Puffer
UDR = 0b11110000;
}
}//while ZU
}//main ZU
//Receiver
int main(void)
{
DDRA |= (1 << PA0);
int UBRR_Value = 51; //9600 Baud
UBRRH = (unsigned char) (UBRR_Value >> 8);
UBRRL = (unsigned char) UBRR_Value;
UCSRB = (1 << RXEN);
UCSRC = (1 << USBS) | (3 << UCSZ0);
unsigned char receiveData;
while (1)
{
while (! (UCSRA & (1 << RXC)) );
receiveData = UDR;
if (receiveData == 0b11110000){
PORTA ^= (1 << PA0);
receiveData=0;
}
}
}
Wenn ich nun an PA0 des Transmitters kurz eine Spannung lege, so
flackert die LED am 2. uC sehr flott. Mir schaut es danach aus, dass die
Botschaft dementsprechend oft gesendet wird.
Die LED flackert etwa 5sec. Egal wie lange ich an PA0 (Transmitter) 5V
lege. Zudem flackert die LED ca 2sec lang, wnen ich an PA1 5V lege.
Woher kommt das denn bitte zustande?!?! PA1 taucht nirgends auf...
PA0 ist nicht debounced oder so. Ich lege einfach mit einem Draht kurz
die Spannung an.
Liebe Grüße und Danke vorab,
Peter K.