1 Naposledy upravil: Zelenáč (2022-11-01 20:47:01)

Téma: Poradí někdo?

Zdravím všechny.
Pokouším se SDS-MICRO (ST) s firmware 4.8.2022 zneužít k ovládání serva topení.
Program asi dělá to, co od něj očekávám, ale výpis v SDS-C - CONSOLE: je prapodivný. Pokud program provede změnu polohy serva, do console se jednou za 20 sekund zapíše :

2022-11-1 19:30:25 regulace topna voda
2406
2450
zvysit teplotu vody
kolik sekund jede servo nahoru  35
kolik je ted  1667329450
kdy bude akce 1667331030

což je správně. Pokud se žádná změna serva nekoná, do console se mnohokrát zapíše stále se stejným časem :

2022-11-1 19:30:5 regulace topna voda
2406
2400
teplota vody je v cajku

což je teoreticky taky správně, pokud by to bylo jen jednou za dvacet sekund a ne mnohokrát.
Může mi prosím někdo poradit, co mám špatně?

Post's attachments

pok.c 1.03 kb, 2 downloads since 2022-11-01 

You don't have the permssions to download the attachments of this post.

2

Re: Poradí někdo?

Jen zběžně:
- v programu není časování - kromě wait() - což není časování, ale stop běhu programu. Proto pokud je splněna 1. podmínka, program udělá return a vše běží znova - tzn. znovu výpis echo. Je třeba předřadit časovou podmínku, aby to bylo vykonáno pouze 1x a pak až za definovaný čas.

3

Re: Poradí někdo?

Děkuji za nakopnutí správným směrem :-)
Neuvědomil jsem si, že po return stále ještě splňuje časovou podmínku.