von Codesammlung Verlagert: ATMega128 Uart Problem

Gast #170875
Lesenswert?

Hallo zusammen,

ich brauche echt Eure Hilfe, da ich nicht weiss, was ich noch alles
testen kann. Ich Versuche jetzt schon seit geraumer Zeit mit Hilfe
eines Stk500/501 und einem ATMega128 ein Zeichen über die Uart1
Schnittstelle zu senden und bekomme es einfach nicht hin.
Mit nem Oszi hab ich auch schon am Ausgang gemessen - kommt aber nix
raus :-(
Der Fehler muss also in der Software liegen (µC hab ich auch schon
getauscht).
Was kann ich noch tun??

Gruss, Tobi

ps: quellcode wurde mit wizard erzeugt
Angehängte Dateien:
Gast #170880
Lesenswert?

Mach es Dir doch für den Anfang nicht so schwer mit Interrups und
Fehlerspeichern ....


void uartcommand (char ccommand)
    {

  UBRR1H = 0x06;              //  UBBRH(06)  Reloadwert für Highregister
  UBRR1L = 0x82;              //  UBRRL= (fquarz/ (16* BAUD) ) -1 (82)
Lowregister


    setbit(PORTD,PD2);            // Pullup am RXT aktivieren
  setbit(UCSR1C,USBS1);          // 2Stopbits
  setbit(UCSR1B,TXEN1);          // Sender enablen
  setbit(UCSR1B,RXEN1);          // Empfänger enablen


  pause(1); // 10 ms Pause

  UDR1 = ccommand;
  pause(8); // 80 ms Pause
  UDR1 = 0x0d;  // CR

  }
Gast #170882
Lesenswert?

na ein bisschen musst Du auch noch selbst anpassen, z.B.

#define setbit(ADDRESS,BIT) (ADDRESS |= (1<<BIT))
#define clearbit(ADDRESS,BIT) (ADDRESS &= ~(1<<BIT))

und für die "pause" gibt es aus der Standartbibliothek ein delay???

ach ja die Baudrate hier ist 300 oder 400 baud. wenn Du 9600 haben
willst, musst Du die Reloadwerte entsprechend ändern

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