Jest tak dla tego żeby można było dokładnie przeanalizować działanie programu.
Cytat z pomocy Bascom'a:
Cytat:
Dyrektywa $SIM
rzeznaczenie:
Instruuje kompilator by nie generował pętli opóźniających dla instrukcji WAIT czy WAITMS. Spowoduje to zwiększenie szybkości symulacji.
Składnia:
$SIM
Opis:
Symulacja instrukcji WAIT może trwać dość długo, zwłaszcza gdy otwarte jest okno podglądu zawartości pamięci. Umieszczenie tej dyrektywy spowoduje, że kompilator nie wygeneruje pętli opóźniających dla instrukcji WAIT czy WAITMS. Przyśpieszy to oczywiście symulację programu.
Uwaga! Gdy program będzie gotowy, należy usunąć (lub umieścić w linii komentarza) dyrektywę $SIM, inaczej instrukcje WAIT i WAITMS nie będą działać poprawnie.
Jeśli wystąpi próba zaprogramowania pamięci Flash, programem skompilowanym z dyrektywą $SIM, środowisko BASCOM pokaże stosowne ostrzeżenie.
Przykład:
$sim
Do
Wait 1
Loop
A czestotliwość zawsze określaj w programie. Inaczej procesor może np. zamiast 1s czekać 2s czy jeszcze inaczej. Miałem z tym kiedyś problem czemu progam tak wolno działa. Było to spowodowane nie określeniem w programie częstotliwości zegara. Było ona określona w opcjach Bascom'a i była ona źle określona.