nefungující omezení proměnné

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

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

Příspěvek od DavidO »

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
Nikoho plánovaně neurážím. Jestli se Vám nelíbí co píšu, tak to nečtěte. A ostatně, třeba za to nemůžu - Researchers believe that dark humor can be a significant symptom of dementia.
Vítek
Příspěvky: 26
Registrován: 05 pro 2018, 17:47
Bydliště: Kladno
Kontaktovat uživatele:

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

Příspěvek od Vítek »

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