Spínač picaxe 08M

Dneska se procesory objevují všude, pokud máte nějaký nápad, či udělát, tak se neváhejte pochlubit.
Zpráva
Autor
blesk
Příspěvky: 7391
Registrován: úte 22.11.2005 0:00
Bydliště: Vsetín
Kontaktovat uživatele:

Re: Spínač picaxe 08M

#16 Příspěvek od blesk »

Tak konec poplachu, bylo to verzi SW. Stáhnul jsem 6tku a vše pracuje jak má :-) jen teda ten program upravím a zkusím ten multitasking zejména z důvodu jednodušší úpravy jednotlivých času záblesků.
Uživatelský avatar
jova
Příspěvky: 1117
Registrován: ned 15.02.2009 0:00
Bydliště: Chýnov - to je kousek od Tábora
Kontaktovat uživatele:

Re: Spínač picaxe 08M

#17 Příspěvek od jova »

Než se do toho pustíš mrkni se sem: http://robodoupe.cz/2015/picaxe-a-multitasking/
Pro to blikání to asi fungovat bude, ale jsou s tím občas problémy :?
Problém takového programu jako máš ty všeobecně je ten, že v okamžiku kdy něco zastavíš příkazem pause, tak se zastaví v ten okamžik na tu dobu celý program. Pokud má ale současně probíhat několik dějů nezávisle na sobě, musí program běžet nepřetržitě a proto je vhodnější to počítání "průběhů".
EPP samokřídla
fotky: https://mapy.cz/fotografie?fotomapy&x=15&y=49&z=8&aid=861
Uživatelský avatar
semo
Příspěvky: 1012
Registrován: ned 20.02.2011 0:00
Bydliště: Telč

Re: Spínač picaxe 08M

#18 Příspěvek od semo »

Tak to moc nechápu, však při multitaskingu zastaví pause jen ten jeden program, ne? Jinak by to nebyl multitasking.
http://semos333.rajce.idnes.cz/
blesk
Příspěvky: 7391
Registrován: úte 22.11.2005 0:00
Bydliště: Vsetín
Kontaktovat uživatele:

Re: Spínač picaxe 08M

#19 Příspěvek od blesk »

semo píše:Tak to moc nechápu, však při multitaskingu zastaví pause jen ten jeden program, ne? Jinak by to nebyl multitasking.


No to předpokládám že tak jak píšeš se zastaví jen to konkrétní "vlákno"
Uživatelský avatar
jova
Příspěvky: 1117
Registrován: ned 15.02.2009 0:00
Bydliště: Chýnov - to je kousek od Tábora
Kontaktovat uživatele:

Re: Spínač picaxe 08M

#20 Příspěvek od jova »

Samozřejmě při multtaskingu běží každé vlákno samostatně a v něm i ten program. Samostatně tam bude běžet i několik příkazů pause. Problém o kterém se píše v tom odkazu je to, že ten procesor nerozdělí svůj čas všem jednotlivým vláknům stejně a pak z toho mohou vznikat problémy. Třeba ty, že ta doba zastavení nebude mít hodnoty pause ... Taky píšu, u toho blikání to zřejmě vadit nebude.
To co píšu dál se vztahuje na jeden samostatný program, který musí provádět několik prolínajících časových akcí součastně a nedá se použít ten příkaz pause.
EPP samokřídla
fotky: https://mapy.cz/fotografie?fotomapy&x=15&y=49&z=8&aid=861
blesk
Příspěvky: 7391
Registrován: úte 22.11.2005 0:00
Bydliště: Vsetín
Kontaktovat uživatele:

Re: Spínač picaxe 08M

#21 Příspěvek od blesk »

Třeba na ten blikac co mam teď napsaný je celý přes pauzu, jen je občas rozdělená na více částí kde v mezičase (v pauze pauzy) zapínám/vypínám něco jiného. Zítra to zkusím přes ten multitasking, tam nějaké pozdržení asi vadit nebude, jediné kde byto mohlo vadit jsou ty záblesky, které trvají cca 0,02s tam by asi nějaká změna doby byla poznat, zvláště když jsou dva o 0.25s za sebou. Pokud by docházelo k nesynchronizaci mezi jednotlivými vlákny, to by vůbec nevadilo. Uvidíme...
blesk
Příspěvky: 7391
Registrován: úte 22.11.2005 0:00
Bydliště: Vsetín
Kontaktovat uživatele:

Re: Spínač picaxe 08M

#22 Příspěvek od blesk »

Tak ten multitasking funguje opravdu nějak podivně...

na samostatné světla v pohodě (běží dvě vlákna) ale jakmile ho v třetím vlákně začnu zatěžovat hlídáním vstupu z RX přes pulsin tak je v háji a světla se zpomalí na cca polovinu, tudy tedy cesta nevede...
Uživatelský avatar
jova
Příspěvky: 1117
Registrován: ned 15.02.2009 0:00
Bydliště: Chýnov - to je kousek od Tábora
Kontaktovat uživatele:

Re: Spínač picaxe 08M

#23 Příspěvek od jova »

Já to myslel takto: Ty záblesky bude ještě třeba trochu časově poupravit protože i průběh vlastní smyčkou nějaký čas zabere. Dá se to částečně eliminovat zrychlením frekvence procesoru (bude se muset změnit i hodnota w6 a pause), nebo trochu pokrátit ty sčítance co vytváří ty časové jednotky.
Nevím jak to máš u sekvence pro zábleskový maják pin 1 25/75/25/875, konkrétně těch 875? v původním programu máš jen pause 225, tak jsem to nechal, ale asi tam patří 875 :roll:

Kód: Vybrat vše

w0=0
w1=0

start:
pulsin 3,1, w6
if w6 > 150 then goto zapni   ;puls delší jak 1,5ms zapni
if w6 < 150 then goto vypni  ;puls kratší jak 1,5ms vypni
goto start         ;začátek smyčky


zapni: 
pause 1 ;nastaví časový krok ve smyčce
       
high 4         ;zapni pin 4 - přistávací světlo

;sekvence pro zábleskový maják pin 1 25/75/25/875     
 
if w0=0 then high 1 endif     ;0
if w0=25 then low 1 endif    ;+25
if w0=100 then high 1 endif    ;+75
if w0=125 then low 1 endif    ;+25
w0=w0+1
if w0>350 then : w0=0 endif   ;+225

;sekvence pro antikolizní maják pin 2 500/500

if w1=0 then high 2 endif     
if w1=500 then low 2 endif
w1=w1+1
if w1>1000 then : w1=0 endif

goto start         ;na začátek smyčky

vypni: 
pause 1 ;nastaví časový krok ve smyčce
       
low 4         ;vypni pin 4 - přistávací světlo

;sekvence pro zábleskový maják pin 1 25/75/25/875     
 
if w0=0 then high 1 endif     
if w0=25 then low 1 endif
if w0=100 then high 1 endif
if w0=125 then low 1 endif
w0=w0+1
if w0>225 then : w0=0 endif

;sekvence pro antikolizní maják pin 2 500/500

if w1=0 then high 2 endif     
if w1=500 then low 2 endif
w1=w1+1
if w1>1000 then : w1=0 endif

goto start         ;na začátek smyčky
Naposledy upravil(a) jova dne stř 28.08.2019 10:06, celkem upraveno 1 x.
EPP samokřídla
fotky: https://mapy.cz/fotografie?fotomapy&x=15&y=49&z=8&aid=861
Uživatelský avatar
semo
Příspěvky: 1012
Registrován: ned 20.02.2011 0:00
Bydliště: Telč

Re: Spínač picaxe 08M

#24 Příspěvek od semo »

Jen pidi drobnost, spíš offtopic:

Kód: Vybrat vše

w0=w0+1
if w0>350 then : w0=0 endif

bych nahradil za

Kód: Vybrat vše

w0 = (w0+1) % 351

(% je zbytek po dělení)
http://semos333.rajce.idnes.cz/
Uživatelský avatar
jova
Příspěvky: 1117
Registrován: ned 15.02.2009 0:00
Bydliště: Chýnov - to je kousek od Tábora
Kontaktovat uživatele:

Re: Spínač picaxe 08M

#25 Příspěvek od jova »

semo píše:Jen pidi drobnost, spíš offtopic:

Kód: Vybrat vše

w0=w0+1
if w0>350 then : w0=0 endif

bych nahradil za

Kód: Vybrat vše

w0 = (w0+1) % 351

(% je zbytek po dělení)

Mohl by jsi mi vysvětlit smysl toho tvého kódu a co provede v programu?
EPP samokřídla
fotky: https://mapy.cz/fotografie?fotomapy&x=15&y=49&z=8&aid=861
Uživatelský avatar
semo
Příspěvky: 1012
Registrován: ned 20.02.2011 0:00
Bydliště: Telč

Re: Spínač picaxe 08M

#26 Příspěvek od semo »

Mělo by to provést skoro to stejné, co tvůj if, ale (snad) elegantněji. Nevím jak v picaxe, ale řek bych, že IF je dražší záležitost, než matematická operace.

Tak to vysvětlení:
w0=w0+1 ..to je jasné, zvyšuje w0 o jedna. Ale když chceš, aby se w0 vrátilo na 0 když je větší než 350, může se to udělat tim zbytkem po dělení:
příklad: "130 % 351" je poářd 130 (podíl je 0 a 130 zbyde). A tak to jde až k 351, kdy "351 % 351" je 0 (podíl je 1 a 0 zbyde).

Rozdíl od toho ifu je, že ještě větší hodnoty w0 (352, ...n) se nenastaví na 0, ale na odpovídající číslo od začátku (352 % 351 = 1, 353 % 351 = 2, .... 2865 % 351 = 57...). Ale to je podle mě a) jedno a za b) většinou žádoucí, protože to neporušuje časovou linii efektu.
http://semos333.rajce.idnes.cz/
Uživatelský avatar
jova
Příspěvky: 1117
Registrován: ned 15.02.2009 0:00
Bydliště: Chýnov - to je kousek od Tábora
Kontaktovat uživatele:

Re: Spínač picaxe 08M

#27 Příspěvek od jova »

Dík za typ.
v PICAXE to v tomhle tvaru nefunguje, musí se to zapsat bez těch závorek. Ušetří to 6 bytů.
Člověk se musí pořád učit :D
On by i ten můj program šel napsat mnohem elegantněji a úsporněji, ale v programování jsem samouk a mám raději když je na první pohled "vidět" jak ten program funguje.
EPP samokřídla
fotky: https://mapy.cz/fotografie?fotomapy&x=15&y=49&z=8&aid=861
Uživatelský avatar
semo
Příspěvky: 1012
Registrován: ned 20.02.2011 0:00
Bydliště: Telč

Re: Spínač picaxe 08M

#28 Příspěvek od semo »

Ajo, závorky :-).
http://semos333.rajce.idnes.cz/
Uživatelský avatar
jyrry
Příspěvky: 22016
Registrován: pon 28.02.2005 0:00
Bydliště: Rakovník
Kontaktovat uživatele:

Re: Spínač picaxe 08M

#29 Příspěvek od jyrry »

A co dát do smyčky na začátek pulsin? Cyklus se zastaví po dobu čekání na impulz, následuje 1,0-2,0ms kdy čte délku pulzu, pak je krásných cca 16ms na počítání +1 a porovnávání jestli došlo ke shodě s nějakým číslem a podle té shody zapínat či vypínat ten který výstup LED a podle délky PWM zapínat či vypínat další světlo... Času spousta.
Bude to synchronizované s opakovací frekvencí PWM servosignálu.
Nevýhoda bude že nejkratší časový úsek bude (obvykle) těch 20ms (a delší úseky jeho násobky) ale tomu se snad dá přizpůsobit... ???

V Arduinu jsou krásné volně běžící časovače a lze číst jejich hodnotu buď v milisekundách nebo (třeba pro měření/generování délky servoimpulzů) v mikrosekundách. To dost používám. Nebo celkem snadné použití přerušení na vstupu (čtení servosignálu), přičemž smyčka může volně žít svým životem s vlastním časováním, nezávisle na nějakém pulsin (PICAXE) nebo pulsein (Arduino).
jyrry.webnode.cz
blesk
Příspěvky: 7391
Registrován: úte 22.11.2005 0:00
Bydliště: Vsetín
Kontaktovat uživatele:

Re: Spínač picaxe 08M

#30 Příspěvek od blesk »

Tak jsem se dopracoval k tomu že mám osazený tišťák ale nejede to....

Ve zkratce...

Picaxe 08M2 ovládá spínaný stabilizátor KF33BD... Na vývojové desce samotný picaxe bliká jak má. Když přivedu 1 na ovládací vstup stabíku tak ledka zhasne, ale jakmile to začnu ovládat pomocí MCU tak to prostě nejede...
Odpovědět

Zpět na „Procesory a jiné vychytávky“