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
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?
Ja, der Quarz ist am uC dran.. und ist auch aktiviert. Baudrate ist 9600, also Com1:9600,8,1,N
dann zeig doch mal dein programm vielleicht liegt da der hund begraben !!!
'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
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?
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.
habe die fusebits nochmal neu gesetzt, jetzt funktioniert es.. vielen dank!
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.