Hallo, ich habe ein Problem mit der Com2 beim ATmega 644A (BASCOM) und diesbezüglich nun jedes Forum erfolglos durchsucht. Wie Com2, gemäß BASCOM-HELP, zu initialisieren und anzusprechen ist, weiß ich. Selbst "zu Fuss" angeschoben, tut sich auf TXD1 nichts. Hier ein Schnipsel: $regfile = "m644Adef.dat" $crystal = 16000000 $baud1 = 9600 $baud = 9600 UCSR1B = &B00011000 UCSR1C = &B10000110 UCSR0B = &B00011000 UCSR0C = &B10000110 Do waitms 50 UDR1 = Asc("T") UDR0 = Asc("S") Loop End Der Port TXD1 liegt permanent auf LOW während an TXD0 das Zeichen permanent ausgegeben wird. Hat jemand eine Idee?
Moin! Ich glaub nur der 644P(A) hat ne zweite UART-Schnittstelle Gruß Alex
Nee stimmt, der "A" hat auch zwei... Sind denn die Register auch in m644Adef.dat richtig definiert?
So, wie es aussieht, hat der Kollege BASCOM die Register UDR1 in der m644Adef.dat vergessen. Das muss ich aber noch einmal genau untersuchen. Im BASCOM-Simulator sieht man allerdings die Aktivitäten auf Com1 & 2. Dürfte das funktionieren, wenn die def.dat fehlerhaft ist? Natürlich habe ich am Ende meines Lateins auch schon den Chip ersetzt. @Martin Der Mega644A hat laut Datenblatt 2 serielle Schnittstellen.
Ich habe den Garten noch einmal umgegraben... Der ATMEGA 644 (Oldie) hatte einen UART. Der ATMEGA 644P (Oldie) hat zwei UARTs. Ich sitze vor einem ATMEGA 644A. Das Atmel Datenblatt weist auf S.174 folgendes aus: "The Atmel ATmega164A/164PA/324A/324PA/644A/644PA/1284/1284P has two USART’s, USART0 and USART1." Hierbei ist es völlig Wurst, ob xxxPA oder xxxA. Das P steht für "PicoPower". Meine Untersuchung der m644Adef.dat hat ergeben, dass die Datendefinition für alle µC's aus dieser Serie wohl auf der Basis von Copy&Paste entstanden sind. In allen defs fehlt wohl die Definition der einzelnen Datenregister für UDR1. Ich habe diese nach der Definition für UDR0 nachgetragen. Leider führt dies auch noch nicht zum Erfolg. Beim Vergleich mit anderen AVR.dat, die einen zweiten UART besitzen, ist bei mir die Overloadlampe angegangen, da die Definitionen wieder ganz anders aufgebaut sind. Hat den jemand schon einmal erfolgreich mittels Bascom den UART1 zum Leben erweckt? Wie ich bereits vorab geschrieben habe, sieht das Ganze im BASCOM -Simulator ganz unspektakulär aus...
Steht denn beim P die richtige Definition drin? Wenn ja, kompilierst du ihn einfach als P oder PA. Der Unterschied zum A ist die Möglichkeit des automatischen Abschaltens des BOD im Sleepmode. Aber die benutzt du ja sowieso nicht, da du ja einen A hast. Vom marginal geringeren Stromverbrauch weiss die Software ohnehin nichts. mfg.
@Thomas Danke für den Hinweis. Ich progge den ATmega aus der BASCOM-Umgebung über den AVRISP MKII. Der Programmer hat sich extrem affig, wenn die def.dat nicht zur Chip-ID passt. Ich hatte die ISP bislang immer aus dem AVR-Studio vorgenommen. Der Gedanke , dass diese Vorgehensweise umständlich ist, hat mich dazu verleitet, den Treiber für den BASCOM-Programmer zu laden. Seither erkennt das AVR-Studio den Prog nicht mehr und ich habe die Bequemlichkeit mit der Aufgabe der Flexibilität erkauft. Ich werde dennoch jetzt versuchen, die Com2 mal in Assembler, unter Umgehung des BASCOM-Compilers, anzusprechen. Einen Tag gebe ich mir noch, bevor sich mein Interesse dahingehend verlagert, herauszufinden, ob das DIL-Gehäuse unter Flammeinwirkung brennt, oder schmilzt! 8=}
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.