Hi, ich hab ein kleines Problem mit USART auf meinem Atmega16, und zwar ist das RXC-Bit im UCSRA Register ständig gesetzt bzw der Receive-Complete Interrupt wird ständig aktiviert, auch wenn gar keine Daten an den µC geschickt werden! Hat einer von euch ne Ahnung was das sein könnte? Im AVR-Studio Emulator läuft alles Prima! Hier mal meine Situation: -Atmega16 -UBRRL(L/H) auf 1000000/(9600*16)-1 gesetzt -UCSRC auf (1<<URSEL)|(1<<USBS)|(3<<UCSZ0) gesetzt -UCSRB auf (1<<RXEN)|(1<<TXEN) gesetzt Meine Empfangsschleife: loop: sbis UCSRA, RXC rjmp loop in r16, UDR ldi r17, 0x30 add r16, r17 rcall lcd_sendData rjmp loop Ach das FE-Bit ist im UCSRA gesetzt, das zeigt doch aber nur an dass etwas mit den empfangenen Daten nicht stimmt, nicht dass ich den Frame falsch gesetzt habe? Hoffe ihr könnt mir helfen! Mit freundlichen Grüßen, Karle
vielleicht ist nur der eingangspin nicht auf einem definierten pegel sondern floated
hmm, ich hab grad beide pins gegroundet und siehe da ich empfange keine pseudo daten mehr! (habe ja sogar etwas empfangen ohne dass irgendein gerät angeschlossen war) aber was kann ich jetzt dagegen machen dass ich mit angeschlossenem geräte daten empfangen kann?
Wie jetzt du möchtest was "dagegen machen dass du mit angeschlossenem geräte daten empfangen kannst". :) was hängt denn für ein gerät dran, hast du noch einen max232 oder ähnliches dazwischen, der müsste eignetlich immer einen definierten pegel erzeugen
ne kein max232, sondern nen taschenrechner :) aber ich mach jetzt einfach einen pullup-widerstand dran! aber schon lustig dass mein zimmer so verstrahlt ist dass der immer was empfängt ^^
Nicht Dein Zimmer ist verstrahlt, die AVR-Pins sind verdammt hochohmig. Mit ´nem Stück Draht am RXD kannst Du Radio Moskau digitalisieren ;-). Aktivier doch den internen PullUp, indem Du nach der UART-Initialisierung sbi PortD, 0 programmierst.
ich glaube die internen pull-ups werden da nicht reichen die 30k und mehr sind zu schwach. (sollten so 10k sein) Was für ein taschenrechner ist es denn?
hm.. also mit internem pullup hab ich zwar keine geister daten mehr empfangen, aber leider auch keine vom taschenrechner mehr ^^ leider hatte ich mit nem 10k externen auch kein glück :/ naja ich hoff ich habe unsauber gelötet oder so muss nochmal nachschauen... ist ein Casio fx-9750g, will ne MMC Speichererweiterung mit nem attiny machen, dann krieg ichs im gehäuse unter :)
Wer sagt denn, daß ein PullUp immer 10k sein muß? Er muß so bemessen sein, daß die angeschlossene Stromsenke den Pin noch sicher auf 0-Pegel ziehen kann und außerdem keine Störungen auftreten. Wenn der interne nicht geht, dann einen externen von vielleicht 100k versuchen - vielleicht ist der Taschenrechner ja etwas schwach auf der Brust.
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.