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.
Bevor es zu Missverständnissen kommt: Ich kommentiere natürlich einen Teil des Programmes aus, beim überspielen auf den jeweiligen uC. Nicht, dass mir das noch vorgewurfen wird :P (Im Code habe ich die /* */ entfernt
Denke es kann geschlossen werden. Nach ein paar Tests, denke ich dass es am Draht lag, mit dem ich PA0 mit 5V versorgt habe. Ziehe ich PA0 auf Masse hört es sofort auf. Zudem lag es auf jeden Fall am Transmitter. Denke das hat was mit der Ladung zu tun, die ich auf dem PIN drauf lasse. Antennenwirkung konnte ich auch beobachten :) Komischerweise hat ein interner Pullup/down da nichts dran geändert. Fakt ist, wenn ich einfach all 500ms Daten raus schicke, funzt es wunderbar.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.