Forum: Mikrocontroller und Digitale Elektronik USART will nicht gehen ...


von Kolja Ludwig (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

das hier ist mein erstes Posting. Ich habe mir einen Atmel ATmega16
zugelegt, ich will damit den Laptop über meine Bang & Olufsen-Anlage
fernsteuern. Dazu brauche ich die serielle Schnittstelle.
Ich habe also mal ein paar Beispielprogramme verwurstet, Ziel ist es
zunächst, beim Empfang eines Zeichens an der seriellen Schnittstelle
eine LED an PB0 leuchten zu lassen. Geht aber nicht, und ich weiß nicht
mehr weiter. Ich benutze die Entwicklungsplatine aus dem "hiesigen"
Shop. Ich habe die Platine mit einem Nullmodem-Kabel an den PC
angeschlossen, der Chip sollte mit 4Mhz laufen (kann ich das irgendwie
verifizieren?
Kann mir jemand helfen? Ich möchte nicht bei den ersten Gehversuchen
schon scheitern ;-)

Gruß Kolja

von Wolle (Gast)


Lesenswert?

Da steht nüxen drinnen !

von Kolja Ludwig (Gast)


Angehängte Dateien:

Lesenswert?

... das richtige Programm.

von Pascal (Gast)


Lesenswert?

vielleicht läuft dein µC gar nicht mit 4MHz, hast du die Fusebits so
gesetzt, dass der externe Quartz verwendet wird?
ich hab bei meinem µC auch gedacht, dass der mit 4MHz läuft, hab dann
die Baudrate danach berechnet und nichts ging, als ich dann die
Baudrate mit 1Mhz (interner Takt der AVRs) berechnet habe, hat alles
wunderbar funktioniert

von Thorsten (Gast)


Lesenswert?

Hallo,

ich kenne das Board hier aus dem Shop leider nicht, doch bist du sicher
das du ein Nullmodem-Kabel brauchst ? Hier im Shop wird ein Kabel mit
1:1 Belegung angeboten und ich denke das es wohl auch für die Boards
hier benutzt werden kann. Ein Nullmodem-Kabel hat keine 1:1 Belegung.

Und den Tip von Pascal würde ich auch unbedingt mal nachgehen.

Gruß
Thorsten

von Kolja Ludwig (Gast)


Lesenswert?

@Pascal: Die Fusebits sind entsprechend gesetzt, cksel 0-3 sind 0. Laut
Datenblatt müsste er dann den externen Quartz verwenden. Soweit also
alles OK, denke ich.

@Thorsten: Ich habe es auch ohne Nullmodemkabel probiert, also den
COM-Port direkt mit dem Board verbunden. Hilft auch nichts. Die
serielle Schnittstelle funktioniert einwandfrei mit einem anderen
Rechner.

Gruß Kolja

von Tobi (Gast)


Lesenswert?

cksel 0 ist nicht externer quarz, sondern externe quazrosziallator, also
externer takt. hast du da jetzt einen quarz oder oder einen quarzoszi
dran. wenns ein quarz ist würde das alles erklären

von Pascal (Gast)


Lesenswert?

ist deine LED so angeschlossen, dass sie leuchtet, wenn man an PB0 5V
ausgibt?
im oben geposteten Code setzt du zuerst DDRB gleich 1, was ja auch
soweit richtig ist, nur dann setzt du PORTB auch gleich 1, was
bedeutet, dass an PB0 5V anliegen
ich hab die Schaltung bisher aber immer nur so gesehen, dass man an
einem Pin 0V ausgibt, um damit eine LED zum leuchten zu bringen

von Kolja Ludwig (Gast)


Lesenswert?

@Tobi: Es ist ein Quarz-Oszillator dran, also von daher alles OK, denke
ich.

@Pascal: Au weia, ich glaube, daran kanns liegen, wenn sonst alles
stimmt. Schade, daß ich es gerade nicht ausprobieren kann, da das Teil
sich irgendwie nicht mehr programmieren lässt (wird von Pony-Prog nicht
mehr erkannt, hoffentlich ist das Teil nicht irgenwie abgeraucht...)

Mal schauen, ob ich es jetzt hinbekomme. Euren Antworten zur Folge
scheint es ja nicht am Code zu liegen, sonst hätte ja schon jemand
geschrien, nehme ich an.

Gruß Kolja

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.