Bascom: Problem mit Simulator und externer Terminalsoftware

Gast #1305964
Hallo,

Ich habe diese Frage schon vor Monaten im Roboternetz, im MCS Forum und 
dem MCS Support gestellt, dabei ist aber bis jetzt noch nichts 
herausgekommen, also versuche ich es hier einmal...

Ich möchte eine serielle Kommunikation von einem PC und µC simulieren, 
um das µC-Programm angenehm debuggen zu können.

Dazu verwende ich
* Null modem: com0com http://sourceforge.net/projects/com0com/
* Terminal: Docklight V1.6 http://www.fuh-edv.de/docklight/index.htm
unter WinXP SP3 sowie Vista SP1 mit Bascom 1.11.9.2 - 1.11.9.4 .

Das funktioniert in Verbindung mit dem PC-Programm (VB.net) wunderbar.

Im Bascom Simulator ist als Com-Port com0com eingestellt und die 
Checkbox "Terminal" ist aktiviert.

Ich habe hier ein kleines Testprogramm, das etwa den Ablauf wiedergibt:
1
$regfile = "m8def.dat"
2
$crystal = 16000000
3
$baud = 115200
4

5
Declare Function L0_serial_process() As Byte
6

7
Dim L0_serial_bytes_waiting As Byte
8
Dim L0_serial_tempbyte As Byte
9
Dim L0_serial_received As Byte
10

11
Dim Tmp_counter As Word
12

13
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , _
14
Databits = 8 , Clockpol = 0
15
Config Serialin = Buffered , Size = 10 , Bytematch = All
16

17
Enable Interrupts
18

19
Do
20
   L0_serial_received = L0_serial_process()
21

22
   Incr Tmp_counter
23
   If Tmp_counter = 1000 Then
24
      Tmp_counter = 0
25
      Print "b";
26
   End If
27
Loop
28
End
29

30
Function L0_serial_process() As Byte
31
   If L0_serial_bytes_waiting > 0 Then                      ' byte(s) received
32
      Inputbin L0_serial_tempbyte
33
      Decr L0_serial_bytes_waiting
34
      Printbin L0_serial_tempbyte
35
   End If
36
End Function
37

38
Serial0bytereceived:
39
   Incr L0_serial_bytes_waiting                             ' increment number of bytes waiting
40
Return

Das Programm sendet periodisch ein "b", welches ich auch im Terminal 
empfange und empfangene Zeichen werden wieder zurückgesendet.
Das funktioniert auch problemlos wenn ich es auf der Hardware teste.
Im Simulator aber wird nichts was vom Terminal gesendet wurde empfangen, 
vom Simulator gesendete Daten kommen allerdings an.

Mache ich hier irgendwas falsch beim Simulator, ist das ein Bug oder ein 
Feature?

Es wundert mich aber auch ein wenig, dass es scheinbar nur sehr wenige 
interessiert, eine serielle Kommunikation zwecks einfacherem Debbuging 
auch simulieren zu können statt ratlos vor dem Controller zu sitzen und 
zu versuchen sich in ihn hineinzuversetzen?

mfg
reefer schrieb:
> Es wundert mich aber auch ein wenig, dass es scheinbar nur sehr wenige
> interessiert, eine serielle Kommunikation zwecks einfacherem Debbuging
> auch simulieren zu können statt ratlos vor dem Controller zu sitzen und
> zu versuchen sich in ihn hineinzuversetzen?


Warum bei einer Simulation eine serielle Schnittstelle verwenden? Das 
ist doch das tolle an Bascom, dass man direkt im Code mitverfolgen kann, 
was gerade abgearbeitet wird.

Das eigentliche Problem ist mir aber auch nicht klar. Wurde die Baudrate 
mal geändert. Die Abweichung beträgt im realen ja bereits 7.84% das ist 
zu viel. Wunder mich, dass es real läuft.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.