atmega8 nur datenmüll über serial (Hife)

Tatooin

Neues Mitglied
08. Apr. 2008
2
0
0
Sprachen
benutze stk500 mit bascom.
bekomme über serial ausgang nur datenmüll mit dem print befehl oder auch andere befehle.
mit einem atmega8515L geht alles.

kann mir einer weiterhelfen, flippe bald aus
 
Hallo zusammen,

um Dir besser helfen zu können fehlen wichtige Informationen:
- Welche Taktfrequenzen?
- Interner Clock oder externer Clock?
- Baudrate?

Ggf. ist es auch hilfreich wenn Du uns mal Deinen Code hinzufügst, dann können wir uns das mal genauer ansehen.

Für ein Beispielcode ist es ratsam alles bis auf die Konfiguration der RS232 und ein Print in der Hauptschleife rauszuschnmeißen.

Dann werden wir weitersehn....

Grüße,
Markus
 
hallo, mal sehen was ich mitteilen kann.

interner takt, wie voreingestellt. (1 Mhz)
baudrate 9600
über $crystal gebe ich 3690000 ein, wie in mein buch (von claus kühnel beschrieben) ein.

das nachfolgende programm funktioniert auf dem Atmega 8515L prima, nur mit dem Atmega8 habe ich nur datenmüll bei der pc-kommunikation.

der Atmega8515L war dabei (stk500) und hatte schon ein programm geladen.
den mega8 habe ich nachgekauft.



$regfile = "m8def.dat" ' ATmega8
$crystal = 3690000 ' für STK500
$baud = 9600

Const True = 1
Const False = 0

Dim Hi As Byte
Dim Lo As Byte
Dim Phase As Bit

Config Timer0 = Timer , Prescale = 64

On Timer0 Timer0_isr ' Sprung zur Timer0_ISR

Config Pinb.0 = Output
Led Alias Portb.0

Enable Timer0 ' Enable Timer0 Interrupt
Enable Interrupts ' Enable Global Interrupt

Lo = 128 ' Initial value for PWM
Phase = True

Do
Input "Duty [0-255]: " , Lo
Hi = 255 - Lo
Loop

End

Timer0_isr:
If Phase = True Then
Led = 1 ' LED aus
Timer0 = Lo ' Reload Timer0
Phase = False
Else
Led = 0 ' LED ein
Timer0 = Hi ' Reload Timer0
Phase = True
End If
Return




ich hoffe das hilf weiter.
kann mir das nicht erklären.
 
Guten Abend Tatooin,

zunächst kann ich Dich erst mal beruhigen! Gut gemacht!

Dein Programm läuft bei mir auf Anhieb auf einem ATmega128 mit 16Mhz. Die PWM funktioniert und die Eingabe des PWM mit Übernahme in das Register funzt auch.

Somit ist es kein systematischer Fehler in Deinem Code sondern ein anderes Problem. Hmmmmmm, lass mich mal überlegen!

[1]
Also, ein Problem mit der Baudrate in Relation zum Takt kann es nicht sein. BASCOM sagt hier folgendes:
BAUD error : 0,1%
Genau gerechnet sind es sogar nur 0,09% somit müsste das passen!

[2]
Welches Terminalprogramm verwendest Du? Hast Du die Einstellungen Dazu mal geprüft?
Baudrate 9600
Parity None
Databits 8
Stopbits 1
Ja ich weiß, dumme Frage aber besser nochmal geprüft als übersehen!

[3]
Hast Du die Jumper bzw. die notwendige Steckverbindung auf Deinem STK500 überprüft? Du musst die PIN's 2=PD0=RXT und 3=PD1=TXD richtig über das mitgelieferte Patch-Kabel an RS232 SPARE anschließen.


So, mehr fällt mir erstmal auch nicht ein. Ggf. müßte ich mal einen Mega8 auf mein STK stecken und dann nochmal ausprobieren aber vielleicht kommst Du ja jetzt schon weiter. Lass es mich einfach wissen!

Grüße und gute Nacht,

Markus
 
Ich programmiere die Teile zwar nur in C und habe daher noch nie eine Zeile Bascom gesehen, aber wenn du den Oszillator auf 1Mhz einstellst und den Takt in diesem Makro(oder was das ist) mit 3.69Mhz angiebst wie soll sich der Bascom Compiler dann die richtigen Werte für das UBRR Register ausrechnen?



(3.69 ist aber ganz schön arg gerundet für den STK500üblichen Tackt von 3.6864)
 
Gute Nacht zusammen, :p

ha ja, das ist es! Mega herzt mit 1.000.000 und BASCOm wird auf 3.690.000 eingestellt. Das kann nicht funktionieren. Klar!

Auf diesem Weg wird auch kein WAIT und WAITMS funktionieren. BASCOM hat so überheit keinen "Zeitbezug" zum realen System.

@Tatooin; zur Info:
Mit $CRYSTAL musst Du immer den Takt angeben, mit dem Dein µC auch tatsächlich läuft. Intern also 1000000 oder beim STK500 3690000 oder z.B. 16000000 wenn Du es gut mit Deinem Mega meinst und in extern mit full Power as he can fahren möchtest.

Schön, danke für die Lösung und den Tipp!
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)