Forum: Mikrocontroller und Digitale Elektronik ATmega8 -> AVRTerm zeigt nichts an


von ping (Gast)


Lesenswert?

Hallo!
Bin neu hier im Forum und wollte einfach mal mein konkretes Problem kund 
tun, da ich da gerade nicht weiter komme.
Habe mir von rowalt.de das Buch gekauft und bei Segor de mC-Bausatz.
Zusammengelötet usw.
So, LEDs ansteuern und Taster auslesen auf diesem Testboard klappt 
prima, lediglich die Ausgabe von irgend nem Text auf der seriellen 
Schnittstelle (AVRTerm am laufen) bleibt leer (Windows98) bzw. irgend 
ein kryptisches Zeugs aus Sonderzeichen (WinXP mit USB2Serial-Adapter).
eingestellt, keine Parität, kein Stopbit, das Übliche eben.

Brennen über Parallelport klappt im übrigen auch.
Was mache ich bei der RS232 falsch?
Danke,
ping

von Karl H. (kbuchegg)


Lesenswert?

Das wahrscheinlichste ist, dass die Baudrate nicht stimmt.
Dabei ist wiederrum das wahrscheinlichste dass dein Programm
mit der falschen Taktfrequenz rechnet.

Also: Hast du einen Quarz am µC?
Ist der auch aktiviert?

von ping (Gast)


Lesenswert?

Ja, der Quarz ist am uC dran.. und ist auch aktiviert.

Baudrate ist 9600, also

Com1:9600,8,1,N

von fubu1000 (Gast)


Lesenswert?

dann zeig doch mal dein programm vielleicht liegt da der hund begraben 
!!!

von ping (Gast)


Lesenswert?

'0003.BAS:   UART-Sender
'Hardware:  MAX232 an PD0/PD1, Nullmodemkabel zum PC
'---------------------------------------------------
$Regfile = "2313def.dat"  'AT90S2313-Deklarationen
$Crystal = 3686400    'Quarz: 3.6864 MHz
$Baud    = 9600       'Baudrate der UART: 9600 Baud

Dim i As Byte
Dim wTest As Word

i = 1
wTest = 35000

Do
  Printbin i ; wTest
  Print "Hallo AVR: " ; i ; wTest
  Print "<--->" ;
Loop
End


von Karl H. (kbuchegg)


Lesenswert?

Bascom
da kann eigentlich nicht viel schiefgehen.
Ich tippe immer noch darauf, dass der Quarz nicht
aktiv ist. Es reicht nicht, dass du den Quarz
ranlötest, du musst auch die FuseBits im Prozessor
entsprechend umstellen. Hast du das gemacht?

Ein einfacher Test:
Schreib da mal rein:
$Crystal = 1000000

also 1 Mhz.

Moment!
$Regfile = "2313def.dat"  'AT90S2313-Deklarationen

Ich denke du hast einen Mega8? Warum steht dann
da dass ein 2313 am Werk ist?

von ping (Gast)


Lesenswert?

so, hab nochmal nachgesehen,
bin endlich wieder vorort.

Im Programm steht derzeit drin:

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

                                  $baud = 9600

                                  Dim I As Byte

                                  Dim Wtest As Word

                                  I = 1
                                  Wtest = 35000

                                  Do
                                    Printbin I ; Wtest
                                    Print "Hallo AVR: " ; I ; Wtest
                                    Print "<--->";

                                  Loop
                                  End

soweit so gut, hmm..
also hab die richtige regfile drin, hatte den quelltext von ner anderen 
Seite kopiert.

von ping (Gast)


Lesenswert?

habe die fusebits nochmal neu gesetzt, jetzt funktioniert es..
vielen dank!

von ping (Gast)


Lesenswert?

und da türmt sich auch gleich schon ein weiteres Problemchen.

Hab folgendes Programm abgetippt:

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


Config Serialout = Buffered , Size = 200                     '20 Bytes 
Warteschlange

Ddrd.5 = 1                                                  'PD5 als 
Ausgang konfigurieren

Do
   If _rs_head_ptrw0 = _rs_tail_ptrw0 Then                  'Sendepuffer 
leer?
      Print "Dies ist ein Test."
   End If
   Portd.5 = Not Portd.5 
'Speakerausgang invertieren

   Waitms 1                                                 'Eine 
Millisekunde warten
Loop

End


Nun ist die Frage, warum er im AVRTerm lediglich  "Di" ausgibt, nach 
drücken von Reset, gibt er erneut Di aus ... aber jweils nur einmal..
scheinbar arbeitet er den Puffer nicht ab.. deswegen geht er auch nicht 
zurück in die schleife. hmm. vielleicht hat jemanden nen tip,
vielen dank

von Homer (Gast)


Lesenswert?

Waitms 1 wird zu klein sein!

von ping (Gast)


Lesenswert?

zwischen 1 und 6ms ist kein Unteschied.. bei 10 gibt er dann gar nichts 
mehr aus,.. hmm..

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.