Forum: Mikrocontroller und Digitale Elektronik AVR Einsteiger: UART ATmega324a String Problem


von Toni (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich verstehe die Welt nicht mehr und ich hoffe, dass ihr mir 
weiterhelfen könnt. In letzter Zeit beschäftige ich mit µC und benutze 
AVR Studio 5. Aktuell versuche ich eine Kommunikation über die serielle 
Schnittstelle mit meinem Controller herzustellen.
Letzte Woche habe ich dafür einen ATmega16 verwendet. Da konnte ich ohne 
Probleme eine Zeichenkette wie "Hallo Welt " mit der Funktion uart_puts 
ausgeben. Heute wollte ich es bei einem ATmega324a versuchen, nur leider 
reagiert der Controller nicht und sogar das Hyperterminal meldet "Unable 
to open COM5. Please check your port settings". Zuerst habe ich die 
Schuld bei den Einstellungen von der seriellen Schnittstelle gesucht, 
weil der ATmega324a über zwei verschiedene verfügt und ich die 
Registernamen ändern musste. Nur funktioniert alles ohne Probleme wenn 
mein Programm nur die Funktionen USART_Receive und uart_putc verwendet. 
Ich versteh nicht warum uart_puts Probleme macht.
Optimierung ist ausgeschaltet. Kann mir vielleicht einer einen Hinweis 
geben?
Der Code ist im Anhang

Danke!

von Toni (Gast)


Lesenswert?

So, ich bin es wieder.

Ich glaube, dass das Problem in der Schaltung liegt.

Wie kann ich die Funktionsweise des Quarzes überprüfen bzw. wie gehe ich 
bei der Fehlersuche am besten vor?

Der Max3232 funktioniert ohne Probleme, weil ich RX und TX vom 
Controller verbunden habe und prima Zeichen über den Hyperterminal 
senden und lesen konnte. Die Software scheint auch ohne Probleme zu 
funktionieren, weil ich ein einzelnes Zeichen senden kann. Sobald ich 
aber mehrere Zeichen hintereinander senden, kommt ein Blödsinn am 
Hyperterminal an.

Danke!
LG, Toni

von Toni (Gast)


Lesenswert?

Hi,

jetzt bin ich es schon wieder. Kann es sein, dass AVR Studio 5 Strings 
für einen ATmega16 und für einen ATmega324a unterschiedlich behandelt?

Danke!
LG, Toni

von Toni (Gast)


Lesenswert?

So Leute ich hab es endlich geschafft.

Es handelt sich dabei um einen Bug vom AVR Studio.

http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=107811&start=0&postdays=0&postorder=asc&highlight=

Anscheinend funktionieren String nicht, wenn man den ATmega324a als 
Device im Studio auswählt. Stattdessen soll man z.B. ATmega324PA 
auswählen - kompilieren und den hex Code aut den ATmega324a runterladen. 
Damit funktioniert alles.

Jetzt kann ich wieder beruhigt schlafen!

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
Noch kein Account? Hier anmelden.