nefungující omezení proměnné

DavidO
Příspěvky: 725
Registrován: 01 kvě 2013, 21:27

Re: nefungující omezení proměnné

Příspěvek od DavidO » 20 bře 2019, 22:37

Vítek píše:
20 bře 2019, 18:30
Děkuji všem za ochotu, toto již funguje jen jsem musel změnit pontb = 1 na pontb = 0, aby světlo úplně zhaslo.
což se ovšem netýká problému podtečení :) ale to neva, hlavně žes to zjistil.
Vítek píše:
20 bře 2019, 18:30
kdyby někoho zajímala celá současná verze programu zde je:
...
Pár připomínek:
1. Když něco voláš přes gosub, tak to něco musí končit returnem. Ty tam ale ve všech těch (barva)op máš skok zase na začátek toho podprogramu.
2. místo

Kód: Vybrat vše

start:
...
goto start
použij

Kód: Vybrat vše

DO
...
LOOP
3. modraop, zlutaop a lustrop se liší jen tím, kam se to nakonec pošle tím pwmduty. Čili správněji bys to měl mít jako podprogram, který určí hodnotu pontb a až se to vrátí, tak se pontb pošle kam má, asi takhle:
V rozhodování z ovladače:

Kód: Vybrat vše

case 6
gosub spocitej
pwmduty modra,pontb

case 7
gosub spocitej
pwmduty zluta,pontb

case 8
gosub spocitej
pwmduty lustr,pontb
a pak to spočítání:

Kód: Vybrat vše

spocitej:
irin [3000,ovladac],ir,irb
select case irb

case 17
IF pontb < 11 THEN let pontb=0 ENDIF
IF pontb > 10 THEN let pontb=pontb-10 ENDIF

case 16
let pontb=pontb+10 max 1023

case 73
pontb=1023

case 74
pontb=0

end select

let irb=0
return

Vítek
Příspěvky: 13
Registrován: 05 pro 2018, 17:47
Kontaktovat uživatele:

Re: nefungující omezení proměnné

Příspěvek od Vítek » 21 bře 2019, 22:20

Děkuji za opravení chyb, chyba s gosub a return vznikla postupnými změnami v programu, o možnosti použití do a loop jsem nevěděl. Třetí chybu jsem zatím neopravil, protože když jsem při použití správného programu chtěl stmívat led pásek, musel jsem pokaždé vybrat pásek, který chci stmívat potom snížit/zvednout hodnotu pontb o deset a opět volit led pásek. pokusil jsem se to opravit, ale nepodařilo se tak snad později.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host