SDS-C: rychlost

Tato stránka popisuje programovací jazyk SDS-C, který je dostupný na vybraných zařízeních SDS. 
Některá zařízení používají FULL-C, pro který máme návody jinde na této WiKi.


Rychlost vykonávání SDS-C programu v SDS

Ve výchozím stavu je každou 1 milisekundu provedena jedna celá instrukce programu (celý hi-level příkaz C jazyka). To dává 1000 vykonaných hi-level příkazů (celých příkazů) za vteřinu, což je dostatečná rychlost pro nejširší množství běžných aplikací. Pojmem celý příkaz přesně odpovídá jednomu CELÉMU řádku, který vidíte v debuggeru v simulátoru (toto je důležitá informace, protože to znamená, že skutečná rychlost je opravdu velká - nepleťte si to s low-level instrukcemi apod., skutečně se jedná o celé příkazy).

Pokud máte oprávněný požadavek na rychlejší činnost (tj. neomezení na 1msec krokování), je zde možnost - viz příslušné nastavení pro konkrétní položku sys[63], která odstraní 1msec zámek kroku.

sys[63]  04 i RW  vypnutí rychlostního omezení běhu programu, nastavte na:
                   == 0   : (výchozí hodnota po spuštění programu) - jeden celý příkaz se provede co 1 msec
                   == 128 : program je prováděn s co největší rychlostí (bez zarovnávacího 1 msec kroku) 
                            ( pozor ale na realizaci čekacích smyček, pak lze použít jen k tomu určené SDS-C funkce nebo sys[64] )

Poznámka: všechny SDS-C programy jsou ve výchozím stavu spouštěny se sys[63] = 0 (tzn. jeden celý příkaz programu je vykonán právě co 1 msec).

Tohoto faktu (krok 1 msec) některé programy využívají k realizaci čekacích smyček, když se předpokládá jeden vykonaný příkaz za 1 msec. Pokud však vypnete toto rychlostní omezení, tak takové případné čekací smyčky přestanou plnit svou funkci (prakticky skončí mnohem dříve): proto ve svých programech používejte pouze k realizaci "čekání" pouze k tomu určené funkce, nebo případně sys[64].

Upozornění: firmware starší než 04/2021 má při sys[63]=128 zrychlené vykonání funkce wait() !

Chystáme další doplnění této stránky.