Hallo zusammen, ich möchte einen Interrupt Abfrage mit einem Atemga2561 für meine RS232 Schnittstelle erstellen. Ich weiß, dass das URXC Register beim Atemga8 wartet bis es einen vollständigen Datensatz erhalten hat und dann den Interrupt auslöst, indem ich die Daten verarbeiten kann. (Quelle: Roland Walter AVR Mikrocontroller Lehrbuch) Ich habe das auch einmal ausprobiert am Atmega8 und das funktioniert auch. Da ich das ganze aber an einem Atmega2561 verwirklichen muss habe ich ein Problem. Ich denke das die Register anders bezeichnet sind, darum arbeitet das Programm auf dem Atmega2561 nicht. Meine Frage ist also, ob mir jemand sagen kann wie das Register auf dem Atemga2561 heißt da ich erfolglos versucht habe es im Datasheet aus zu machen. Mir wäre auch ein Tipp sehr recht wie ich so was allgemein herausfinden kann(mal abgesehen vom Datasheet). Gruß The Red X
Es geht ums UATR Empfangen und das soll halt mit diesem URXC ermöglicht werden. Beim Atmega8 heißt es URXC und beim 2561 hab ich keine Ahnung.
Meine Fresse, es kann doch nicht so schwer sein mal den Arsch hochzubekommen und selber ins Datenblatt vom 2561 zu sehen.
Norgan wrote: > Meine Fresse, es kann doch nicht so schwer sein mal den Arsch > hochzubekommen und selber ins Datenblatt vom 2561 zu sehen. Ich vermute, dass ihm das Datenblatt da auch nicht helfen wird, da es weder ein Register, noch ein Bit oder sonstwas mit der Bezeichnung URXC gibt! Schätzungsweise ist das irgendeine BASCOM-interne Bezeichnung (möglicherweise für den betreffenden Interrupt-Vektor). Allerdings sollte man sich erstmal intensiv mit den Grundlagen befassen, wenn man den Unterschied zwischen Registern, Bits, Interrupt-Vektoren undwasweißichnochalles nicht kennt... Auch BASCOM lernt man nicht durch wildes Rumprobieren.
Norgan wrote: > Meine Fresse, es kann doch nicht so schwer sein mal den Arsch > hochzubekommen und selber ins Datenblatt vom 2561 zu sehen. Ich lese seit Stunden nur in diesem Ding glaub mir. Ich kenne mich mit den Registern wirklich nicht so doll aus aber darum frage ich ja auch hier nach. Also ich bin inzwischen so weit, das ich weiß das es beim Atmega2561 das USART Register gibt. Dort hat man dann die UCSRA, UCSRB und UCSRC. Ich glaube diese sind die, die beim Atmega8 das URXC sind(glaube ich). Aber ich bin mir halt absolut nicht sicher weil ich bei dem ganzen Haufen von UDR's und URXC's nicht mehr durch sehe. Was ich weiß ist nur das das Ding einfach nur eine Interrupt auslöst wenn was über UART kommt. Ich hoffe es kommt langsam Licht dahinter was ich suche.
Alexander Schmidt wrote: > Norgan wrote: >> Meine Fresse, es kann doch nicht so schwer sein mal den Arsch >> hochzubekommen und selber ins Datenblatt vom 2561 zu sehen. > > Ich lese seit Stunden nur in diesem Ding glaub mir. > Ich kenne mich mit den Registern wirklich nicht so doll aus aber darum > frage ich ja auch hier nach. Nochmal: Du wirst die BASCOM-Doku bzw. -Hilfe benötigen! Nach Deinem Hinweis auf das Buch von Roland Walter, das sich afair mit BASCOM befasst, gehe ich jedenfalls davon aus, dass Du in BASCOM programmieren willst. > Also ich bin inzwischen so weit, das ich weiß das es beim Atmega2561 das > USART Register gibt. Das USART-Register gibt es nicht! > Dort hat man dann die UCSRA, UCSRB und UCSRC. Jo, das sind die drei Steuerregister für das USART, in denen die Konfigurationsbits stehen. > Ich glaube diese sind die, die beim Atmega8 das URXC sind(glaube ich). Nochmal: Es gibt weder beim ATMega8 noch bei irgendeinem anderen mir bekannten AVR ein Register mit der Bezeichnung URXC! Lies nochmal mein letztes Posting. > Aber ich bin mir halt absolut nicht sicher weil ich bei dem ganzen > Haufen von UDR's Für jedes UART gibt es nur ein einziges UDR! Also nix mit "Haufen". > und URXC's Das gibt's immer noch nicht. Und den Plural schreibt man ohne Apostroph. > Was ich weiß ist nur das das Ding einfach nur eine Interrupt auslöst > wenn was über UART kommt. Wenn das mal so einfach wäre! > Ich hoffe es kommt langsam Licht dahinter was ich suche. Nicht, solange Du Dich auf einem völligen Holzweg befindest.
Phhuu... Weiter im Text. Das Register das ich nutzen muss müsste wäre dem nach also das UCSR(A, B, C)(UART Controll Status Register A, B oder C) richtig? Wenn ich das manuell abfragen will, würde das denke ich mal so aussehen: IF UCSRA.RXC = 1 Then I=UDR UDR=I End IF Das klappt allerdings nicht, weil er diese eben nicht mehr erkennt, wenn ich mit dem Atmega2561 arbeite. Er erkennt einfach das UCSRA register nicht mehr. Dasselbe gilt halt auch für das URXC. Diese Interruptrutiene erkennt er nur mit dem Atmega8. Sorry für das Kuddelmuddel mit den Registern ich tue mich da etwas schwer.
Alexander Schmidt wrote: > Das Register das ich nutzen muss müsste wäre dem nach also das UCSR(A, > B, C)(UART Controll Status Register A, B oder C) richtig? Jepp. > Wenn ich das manuell abfragen will, würde das denke ich mal so aussehen: > IF UCSRA.RXC = 1 Then > I=UDR > UDR=I > End IF > Das klappt allerdings nicht, weil er diese eben nicht mehr erkennt, wenn > ich mit dem Atmega2561 arbeite. Er erkennt einfach das UCSRA register > nicht mehr. Der ATMega2561 hat ja auch zwei USARTs. Deshalb gibt es bei dem auch kein UCSRA usw., sondern UCSR0A bzw. UCSR1A, je nachdem, welches USART verwendet werden soll. Das wiederum steht allerdings tatsächlich im Datenblatt... Bei den neueren AVRs haben diese Register generell eine Ziffer mit drin. Auch AVRs mit nur einem U(S)ART haben dementsprechend ein UCSR0A, um die Code-Kompatibilität zwischen unterschiedlichen AVRs zu erhöhen. Der ATMega8 stammt allerdings aus einer Zeit, als es noch keine AVRs mit mehr als einem USART gab, weshalb man das damals noch anders benannt hat. > Dasselbe gilt halt auch für das URXC. Diese Interruptrutiene erkennt er > nur mit dem Atmega8. Wie schon (mehrfach, stöööhn) gesagt: Das ist vermutlich eine BASCOM-interne Bezeichnung für den Interrupt-Vektor. Möglicherweise (ich arbeite nicht mit BASCOM und kann da deshalb nichts Näheres zu sagen) gibt es ein logisches Äquivalent mit der Bezeichnung URXC0 bzw. URXC1...
@ Alexander gidf.de Erster Treffer mit Suchwort "URXC" http://www.rowalt.de/mc/avr/avrboard/04/avrb04.htm "URXC ist ein Bascom-eigenes Kürzel für UART Receive Complete"
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.