-
-
Neuer Benutzer
Öfters hier
Bascom Simulator
Was mache ich falsch?
Beim Starten des Simulators zählen erstmal die Register R30, R31 und R24 auf null und erst dann startet der eigentliche Simulator. Bis die Register alle auf null sind vergehen schon mal 2-5 Minuten.
Das kann dich nicht normal sein - oder?
Gruß
Günther
-
Erfahrener Benutzer
Roboter Genie
Hallo Gunther,
zeig uns doch mal dein Programm, könnte hilfreich sein
Gruß
Chris
-
Erfahrener Benutzer
Robotik Einstein
Hast Du im Proramm oben $sim vor den Compiliren eingesetzt?
wenn nicht läuft der Simulator bei einigen behelen nicht richtig.
Zum Echten Betrieb muß noch einmal ohne das $sim Compiliert werden.
Gruß Richard
-
Erfahrener Benutzer
Robotik Einstein
Naja das Programm läuft ohne $sim genau so. Nur werden hier sämtliche Warteschleifen auch wirklich gewartet (bei $sim werden die rausgeworfen). Und da ein solcher µC-Simulator (oder Emulator) auch bei heutigen PCs bei weitem keine Echtzeit schafft, ist das Verhalten eigentlich normal.
Wenn du irgendwo ein Wait 1 drin hast, dann wird der Simulator auch die nötige Anzahl Zyklen warten, bis diese 1 Sekunde im Programm vergangen ist. In der Realität kann das durchaus mehrere Minuten dauern.
-
Neuer Benutzer
Öfters hier
Die Wartezeit ist unabhängig vom Programm und von wait-Anweisungen.
Der Zeiger, der die aktuell bearbeitete Zeile im Simulator anzeigt steht auf der 1. Zeile und steht dort solange bis die Register runtergezählt sind. Erst dann beginnt die Simulation.
Gruß
Günther
-
Erfahrener Benutzer
Robotik Einstein
Zeig doch einfach mal den Code. Es kann durchaus sein, dass da noch irgend ne Initialisierung läuft, die man bei Bascom nicht explizit angeben muss.
z.B. wird ein LCD automatisch initialisiert, sobald ein "LCD"-Kommando vorkommt. Diese Initialisierung (Befehl "InitLCD") taucht im Quelltext nicht auf, wird aber trotzdem ausgeführt und dauert seine Zeit.
-
Neuer Benutzer
Öfters hier
Ich habs mal reduziert auf
Config Lcd = 16 * 4
$crystal = 5000000
$regfile = "m8535.dat"
Home L
End
Wenn dien Zeile Home L rausfällt startet der Simulator sofort.
Aber die Zeile sollte doch ok sein oder?
GRuß
Günther
-
Erfahrener Benutzer
Robotik Einstein
Genau die Vermutung.
Die Wartezeit kommt durch die Initialisierung des LCD. Die wird automatisch ausgeführt, sobald ein LCD-Kommando (in dem Fall "Home") verwendet wird. Ist diese Anweisung weg, fällt natürlich auch die Initialisierung raus (wozu was initialisieren, das nicht verwendet wird?)
-
Neuer Benutzer
Öfters hier
Das LCD ist natürlich im Programm eingebunden und wird unbedingt gebraucht. Nur in diesem eingedampften Ausschnitt nicht.
Dauert die Initialisierung des LCD wirklich fast 5 Minuten? PC ist quad-core mit 2.8GHz. Kennt jemand einen Ausweg?
Gruß
Günther
-
Erfahrener Benutzer
Roboter Experte
Wenn $SIM nicht hilft, dann schmeiß das INITLCD einfach raus für den Test. Die Ausgaben sollte er immer noch simulieren...
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen