AVR Einsteiger: UART ATmega324a String Problem

Gast #2418304
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!
Angehängte Dateien:
Gast #2419806
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
Gast #2420219
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!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren