www.mikrocontroller.net

Forum: Compiler & IDEs USART viel zu langsam bei anderem uC


Autor: CAnfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich habe wieder mal eine Knobelaufgabe.. Also ich habe ein 
Programm mit USART-Ausgabe (printf...). Compiliert für einen Mega2560 
funktioniert es, compiliert für einen Mega8 nicht - da sendet die USART 
in Zehnerpotenzen zu langsam (hab mal mit dem OSZI auf TXD geschaut). 
Der Programmcode ist identisch, bis auf die u.g. #defines, die die 
Registernamen angleichen. In UBRRH und UBRRL werden auch die gleichen 
Werte geschrieben (0x33 für 1200 Baud bei 1MHz), das sagt zumindest der 
Simulator.. Die Beispieltabellen für UBRR in den Datenblättern sind 
identisch, bis auf die Tatsache, daß der 2560 mehrere USARTs hat. Was 
kann noch die Ursache sein? Die Fuses auf dem Mega 8 sind auch ok..

// je nach uC (Mega8 oder Mega2560) werden die Ports entsprechend definiert
#if defined(__AVR_ATmega8__)
  //Alias-Namen für ATmega8
  #define MOSI   3
  #define MISO   4
  #define SCK     5
  #define SS_ORI   2
  #define SS     1 // eigentlich 0, aber ich will es selbst steuern
#elif defined(__AVR_ATmega2560__)
  //Alias-Namen für ATmega2560 (STK600)
  #define UBRRH UBRR0H // erste Uart verwenden
  #define UBRRL UBRR0L
  #define UCSRB UCSR0B
  #define RXEN  RXEN0
  #define TXEN  TXEN0
  #define UCSRC UCSR0C
  #define USBS  USBS0
  #define UCSZ0 UCSZ00
  #define UCSRA UCSR0A
  #define RXC    RXC0
  #define UDR    UDR0
  #define UDRE  UDRE0  
  #define MOSI   2
  #define MISO   3
  #define SCK     1
  #define SS_ORI   0
  #define SS     4 // eigentlich 0, aber ich will es selbst steuern
#else
  #error "Dieses Programm unterstützt nur ATMega8 oder ATMega2560"
#endif

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könnte es sein dass die beiden Prozessoren mit unterschiedlichen 
Taktfrequenzen arbeiten?
Dann sind natürlich die Vorteiler bei den beiden Prozessoren 
unterschiedlich zu setzen.

Autor: CAnfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nein, arbeiten beide mit 1MHz.. Das war auch eine meiner Ideen.. Ich 
weiß auch nicht so richtig, wie ich das debuggen soll..

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Der Programmcode ist identisch, bis auf die u.g. #defines,
> die die Registernamen angleichen.

Hast du mal im Datenblatt kontrolliert, ob in den 
Konfigurationsregistern die gleichen Bits drinnen sind. Manchmal war 
Atmel nämlich fies und hat die Bedeutung einzelner Bits in den 
Konfigurationsregistern bei unterschiedlichen Prozessoren verändert.

Autor: CAnfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das habe ich noch nicht kontrolliert, aber ich spreche alle Bits und 
register mit Namen an.. Trotzdem kontrollieren? UBRRH und UBRRL sind ja 
bei beiden normale Register..

Hat jemand eine andere Idee zum debuggen?

Autor: Justus Skorps (jussa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
CAnfänger wrote:
>.. Trotzdem kontrollieren? UBRRH und UBRRL sind ja
> bei beiden normale Register..
>

sicher? beim mega8 teilen sich doch UBBRH und UCSRC eine Adresse...

Autor: CAnfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nee, sicher bin ich nicht.. na mal sehen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.