Diese Zeile mal genauer lesen : $crystal
Gento
Hallo habe dass Pollin Board aber die RS232 funktioniert nicht wennn ich diese Testprogramm laufen lasse
Code:'--------------------------------------------------------------------------' ' Testtool.bas ' ' 2006 ,Pollin Electronic ' ' Freeware ' '--------------------------------------------------------------------------' ' ' 'Pollin Electronic Atmel-Evaluation-Board ' 'Bestellnummer: 810022 ' 'Testprogramm für ATmega16 ' 'Der gesendete Text kann mit dem Hyperterminal von Windows angezeigt werden' ' 'Einstellungen am Hyperterminal: ' ' Bits pro sekunde: 9600 ' ' Datenbits : 8 ' ' Parität : keine ' ' Stoppbits : 1 ' ' Flusssteuerung : keine ' ' ' '--------------------------------------------------------------------------' $regfile = "m8def.dat" $crystal = 1000000 'definieren des verwendeten externen Quarz (8MHz) Baud = 9600 Dim A As Byte 'dimensionieren der verwendeten Variablen Dim B As Byte Ddrd = &B11100000 'definieren der verwendeten Ports ( 1 = ausgang; 0= eingang) Portd = &B00000000 'definieren der einzelnen Pins an einem Port ( 0= low level; 1= high level) Main: 'Hauptprogramm Do 'Anfang der Schleife If Pind.2 = 1 Then 'Wenn an Pin 2 von Port D ein high level anliegt, dann... Toggle Portd.5 '...setze Pin 5 von Port D von high auf low oder umgekehrt Bitwait Pind.2 , Reset 'warte bis an Pin 2 von Port D wieder ein low level anliegt End If 'Ende der Bedingung If Pind.3 = 1 Then 'Wenn an Pin 3 von Port D ein high level anliegt, dann... Toggle Portd.6 '...setze Pin 6 von Port D von high auf low oder umgekehrt Bitwait Pind.3 , Reset 'warte bis an Pin 3 von Port D wieder ein low level anliegt End If 'Ende der Bedingung If Pind.4 = 1 Then 'Wenn an Pin 2 von Port D ein high level anliegt, dann... Gosub Beep '...gehe zum Untermenü "Beep" Gosub Textausgabe '...gehe zum Untermenü "Textausgabe" Bitwait Pind.4 , Reset 'warte bis an Pin 4 von Port D wieder ein low level anliegt End If 'Ende der Bendingung Print "Hallo" Loop 'zum Anfang der Schleife Beep: 'Untermenü "Beep" Portd.7 = 1 'setzte den Pin 7 von Port D auf high Waitms 500 'Warte 500 ms Portd.7 = 0 'setzt den Pin 7 von Port D auf low Return 'zurück zum Hauptmenü Textausgabe: 'Untermenü "Textausgabe" Print "Atmel-Evaluation-Board" 'Sende den Text in den Anführungszeichen über RS232 zum PC Return 'zurück zum Hauptmenü
Kommt im Terminal nur Müll an
Habe Com2 eingestellt und 8N1 jetzt weis ich nicht ob mein Programm falsch ist oder ich im Terminal was falsches stehen habe oder was da los ist.
Als Kabel benutze ich ein Com 1:1 beschaltet dass ich zum Flashen in Pony Prog auch benutze und dass Funktioniert.
Gruß Sven
Diese Zeile mal genauer lesen : $crystal
Gento
Hi!
Stimmt die Einstellung der seriellen Schnittstelle bezogen auf den Systemtakt? Standardmässig verwenden die AVRs einen internen RC-Oszillator mit 1MHz. Der ist jedoch wegen Temperatur- und Spannungsabhängigkeit für die serielle Schnittstelle nur bedingt bis überhaupt nicht zu gebrauchen. Am Besten an den AVR einen externen Quarz dran und die Fuse-Bits entsprechend einstellen.
Gruß,
Markus
Die Fuse Bits sind noch auf Interner Takt ein gestellt.
Ich komme mit der Anleitung nicht so ganz klar was ich in den Fuse Bits, in Pony Prog, einstellen muss um den externen 8 MHZ Quarz zu aktivieren.
Könnte mir einer das mal erklären.
Danke Sven
Hallo
So konnte das Problem lösen, habe die Fuse Bits setzten können und naja den Plan falsch gelesen war ein 16 Mhz Quarz.
mit diesem Programm läuft es jetzt super DankeCode:'--------------------------------------------------------------------------' ' Testtool.bas ' ' 2006 ,Pollin Electronic ' ' Freeware ' '--------------------------------------------------------------------------' ' ' 'Pollin Electronic Atmel-Evaluation-Board ' 'Bestellnummer: 810022 ' 'Testprogramm für ATmega16 ' 'Der gesendete Text kann mit dem Hyperterminal von Windows angezeigt werden' ' 'Einstellungen am Hyperterminal: ' ' Bits pro sekunde: 9600 ' ' Datenbits : 8 ' ' Parität : keine ' ' Stoppbits : 1 ' ' Flusssteuerung : keine ' ' ' '--------------------------------------------------------------------------' $regfile = "m8def.dat" $crystal = 16000000 'definieren des verwendeten externen Quarz (8MHz) Baud = 9600 Dim A As Byte 'dimensionieren der verwendeten Variablen Dim B As Byte Ddrd = &B11100000 'definieren der verwendeten Ports ( 1 = ausgang; 0= eingang) Portd = &B00000000 'definieren der einzelnen Pins an einem Port ( 0= low level; 1= high level) Main: 'Hauptprogramm Do 'Anfang der Schleife If Pind.2 = 1 Then 'Wenn an Pin 2 von Port D ein high level anliegt, dann... Toggle Portd.5 '...setze Pin 5 von Port D von high auf low oder umgekehrt Bitwait Pind.2 , Reset 'warte bis an Pin 2 von Port D wieder ein low level anliegt End If 'Ende der Bedingung If Pind.3 = 1 Then 'Wenn an Pin 3 von Port D ein high level anliegt, dann... Toggle Portd.6 '...setze Pin 6 von Port D von high auf low oder umgekehrt Bitwait Pind.3 , Reset 'warte bis an Pin 3 von Port D wieder ein low level anliegt End If 'Ende der Bedingung If Pind.4 = 1 Then 'Wenn an Pin 2 von Port D ein high level anliegt, dann... Gosub Beep '...gehe zum Untermenü "Beep" Gosub Textausgabe '...gehe zum Untermenü "Textausgabe" Bitwait Pind.4 , Reset 'warte bis an Pin 4 von Port D wieder ein low level anliegt End If 'Ende der Bendingung Loop 'zum Anfang der Schleife Beep: 'Untermenü "Beep" Portd.7 = 1 'setzte den Pin 7 von Port D auf high Waitms 500 'Warte 500 ms Portd.7 = 0 'setzt den Pin 7 von Port D auf low Return 'zurück zum Hauptmenü Textausgabe: 'Untermenü "Textausgabe" Print "Atmel-Evaluation-Board" 'Sende den Text in den Anführungszeichen über RS232 zum PC Return 'zurück zum Hauptmenü
Ach eins hätte ich noch, wie kann ich verhindern dass nach dem gesendeten Text im Terminal diese Note und as Rechteck mit Kreis kommt
Gruß Sven
Hallo Sven,
mach erstmal aus
Baud = 9600
$Baud = 9600
Da du einen AT-Mega 8 einsetzt, gibt es 2 Möglichkeiten:
Du hast noch nichts an den Fusebits gedreht, dann läuft der Mega mit internen 1MHz. Da du
$crystal = 1000000
eingetragen hast müsste das Dingens dann gehen. Falls du die Fusebits auf externen Oszillator umgestellt hast, ändere
$crystal = 1000000 auf die Frequenz des Quarzes.
Günter
Danke habe die Fehler gefunden.
Habe jetzt auf externen Quarz mit 16000000 Hz und Baud = 9600 auch ohne Dollar und es Funktioniert.
Danke Gruß Sven
Hallo Sven,
die Baudrate erst zur Laufzeit zu setzen könnte irgendwann kuriose Fehler erzeugen. Im Manual kannst du dir ja mal den Unterschied von $Baud und Baud zu gemüte führen.
Günter
ich arbeite immer mit der Microsoft $baud=19600 damit gehts dann flotter
bei 4Mhz die auch mein STK500 als Schnittstelle hat
Hallo
habe mein Programm jetzt auf $Baud geändert läuft prima.
Heute sind auch endlich meine Kleinteile angekommen somit kann ich endlich den Spannungsteiler für mein Messprogramm machen.
Hoffe ich bekomme dass alles hin Gruß Sven
Lesezeichen