Mit Bascom schreibt man Programme, die auf einen Mikrokontroller (µC) übertragen werden und dann dort ablaufen.
Damit das Programm auf dem µC ablauffähig ist, muß der Sourcecode für den ganz bestimmten µC kompiliert werden.
Einstellungen für die Kompilierung gibt man der Übersichtlichkeit halber in einem Header im Sourcecode an.
In Deinem Programm versuchst Du SW-UART zum Senden von Daten über die PC COM Schnittstelle zu nutzen. Damit hab ich es nicht geschafft - denke auch nicht, daß das geht
Das ganze Timing Verhalten in der Simulation entspricht nicht dem, die es auf dem µC haben würde. Um trotzdem was aus der Simulation raus und rein zu kriegen, versuch Folgendes:
In Bascom unter "Options", "Communication" den COM Port einstellen, den Du am PC nutzen möchtest und die Parameter wie 19200,8,n,1,handshake=none
In Bascom unter "Options", "Simulator" auch nochmal den COM Port einstellen.
Unten stehendes Programm kompilieren und dann Simulator aufrufen. Oben den Haken bei Terminal aktivieren (Werden COM-Port Parameter geändert, muß der Haken deaktiviert und wieder aktiviert werden!).
Bei Beenden und Neustart von Bascom verschwindet der Haken wieder - drauf achten daß er gesetzt ist, wenn Du wieder den Datenaustausch brauchst.
Simulation laufen lassen.
So hat die Verbindung bei mir auf WIN-XP mit Nullmodem Kabel zwischen echten COM-Ports zu einem anderen PC mit Hyperterminal geklappt; hatte also keinen USB-RS232 Wandler und korrekte Einstellungen am anderen PC vorausgesetzt.
Das Programm nutzt die defaultmäßigen Einstellungen für die HW-Uart = COM1 des µC. Deshalb keine Einstellungen außer $baud ($baud hat aber keinen Einfluß auf die Kommunikation aus der Simulation heraus). Wegen Nutzung der HW-COM1 ist kein "Open" notwendig.
Bitte gib Bescheid wenns funktioniert hat. und wenn nicht, dann nicht
Code:
$regfile = "m88def.dat" 'Für ATMega88 Mikrokontroller
$framesize = 32
$swstack = 32
$hwstack = 34
$crystal = 8000000
$baud = 19200 'Baud Rate ( 8,N,1 ist default - flow control=NONE)
Dim A As String * 1
Print "@01"
A = Waitkey()
Print A
End
Gruß
Searcher
Lesezeichen