PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Daten an PC senden



martin66119
13.03.2007, 11:13
Hallo und guten Morgen!

Kann mir jemand bitte mals folgenden Code ergänzen mit dem ich dann Daten an den PC senden kann. Ich verwende das Board myAVr mit USB-Schnittstelle.

$regfile = "m8def.dat"
$crystal = 3686400

Dim Integerwert as Interger
Dim FloatWert as Single
do
Integerwert = Integerwert + 1
FloatWert = Floatwert + 0.27
Loop
End


Danke für die Hilfe!
Martin

MarkusH
13.03.2007, 19:10
Hi,
du kannst mit print "irgendwas" daten über die serielle Schnittstelle versenden. Unabhängig von deinem bisherigen code.
Beantwortet das deine Frage?

Gruß, Markus

oiermann
14.03.2007, 21:01
Also ich hab das jetzt auch mal probiert und hiernach angeschlossen: http://www.mikrocontroller.net/articles/AVR-Tutorial:_UART

das ist mein code:


$regfile = "attiny2313.dat"

$baud = 300

Config Portd.6 = Output

Do
Toggle Portd.6
Print "Hello World"
Waitms 500
Loop

Nun blinkt die LED an D6 auch und am PC kommt etwas an. Allerdings ist das total verkrüppelt und geht nur im BASCOM-Terminal. In Hyperterm von Windows kommt nichts. Im Linux hab ich es noch nicht ausprobiert.
Ich hab verschiedene Baudraten durchprobiert und am PC auch immer so eingestellt. Jedes mal dasselbe, nur unterschiedlich schnell.

An was kann das liegen?

Jon
14.03.2007, 21:15
Du hast keinen Quarz angegeben. Vielleicht liegt es daran.

jon

oiermann
14.03.2007, 21:34
Ich habe keinen Externen dran, aber mit den Fusebits auf intern 4Mhz und 8Mhz gestellt, bei beiden keinen Erfolg. Das unleserlich änderte sich zwar, aber trotzdem noch kein Text.

MarkusH
14.03.2007, 21:54
Probiers mal damit:
$crystal = 3686400
$baud = 9600

Jon
15.03.2007, 08:03
Du musst die Spalte
$crystal=xxx
immer angeben.

Meinst du nicht, dass 300 als Baud Rate etwas klein ist?

jon

oiermann
15.03.2007, 15:29
Ich hab es ja mit angegeben, ging nicht. Vorhin habe ich einen 4Mhz Quarz eingebaut, jetzt funktioniert es, nur mit dem Internen Oszillator nicht.. *wunder*

martin66119
15.03.2007, 21:01
Danke für die Infos. Ich werde am Wochenende mal schauen ob es klappt.

Grüße
Martin

Jon
15.03.2007, 21:08
Ich hab es ja mit angegeben, ging nicht. Vorhin habe ich einen 4Mhz Quarz eingebaut, jetzt funktioniert es, nur mit dem Internen Oszillator nicht.. *wunder*
Das es mit dem internen Quarz nicht geht wundert mich nicht so sehr. Bei mir gehen auch nur externe ordentlich. Liegt daran, dass die Quarze, die eingebaut sind nicht so genau sind. Vor allem sind die sehr temperaturabhängig.

jon

kolisson
16.03.2007, 23:05
intern geht es in der standardfrequenz von 1mhz immer eigentlich nicht, da aus 1mhz keine vernünftigen baudraten generiert werden können. mit intern 2mhz geht es schon super.

aber immer gut, wenn am pc komische zeichen ankommen. dann weiss man, das die hardware funzt.

aber was schreibt ihr da immer ?

$crystal = 3686400

ist das sicher, dass ihr so einen quartz habt ?

Jon
17.03.2007, 09:03
Den Quarz mit 3,6864MHz gibt es.
warum sollte man den dann nicht nutzen?

jon

Christopher1
17.03.2007, 09:12
Hat schon nen Grund warum die so ne "aussergewöhnlich" Frequez haben.

MarkusH
18.03.2007, 10:49
Die Quarzfrequenz sollte ein vielfaches deiner Baudrate sein. Dann ist die Übertragung vollständig fehlerfrei. Der Quarz mit 3,6864MHz wird deshalb oft verwendet weil er mit allen gängigen Baudraten optimal funktioniert.

Gruß

Netbird
18.03.2007, 14:20
Hallo,

mit der internen Taktfrequenz 1MHz des Mega 8 habe ich gute Übertragungen mit 2400 Baud! Als Frequenz muss dann $crystal= 1000000 angegeben werden, damit die Baudratengeschwindigkeit stimmt.

In Hyperterminal muss ggf. diese Baudrate eingestellt werden, dann sollte es so klappen wie bei mir ...

Gruß, ..