Odeslat nové téma Odpovědět na téma  [ Příspěvků: 46 ]  Přejít na stránku Předchozí  1, 2, 3, 4  Další
Autor Zpráva
 Předmět příspěvku: Re: Spínač picaxe 08M
PříspěvekNapsal: úte 27.08.2019 15:10 
Mazák
Mazák
Uživatelský avatar

Registrován: 22.11.2005
Příspěvky: 7132
Bydliště: Vsetín
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ů.


Nahoru
 Profil {RCalbum.cz}  
 
 
 Předmět příspěvku: Re: Spínač picaxe 08M
PříspěvekNapsal: úte 27.08.2019 15:22 
Mazák
Mazák
Uživatelský avatar

Registrován: 15.2.2009
Příspěvky: 1124
Bydliště: Chýnov - to je kousek od Tábora
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


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Spínač picaxe 08M
PříspěvekNapsal: úte 27.08.2019 15:26 
Mazák
Mazák
Uživatelský avatar

Registrován: 20.2.2011
Příspěvky: 993
Bydliště: Telč
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/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Spínač picaxe 08M
PříspěvekNapsal: úte 27.08.2019 16:31 
Mazák
Mazák
Uživatelský avatar

Registrován: 22.11.2005
Příspěvky: 7132
Bydliště: Vsetín
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"


Nahoru
 Profil {RCalbum.cz}  
 
 Předmět příspěvku: Re: Spínač picaxe 08M
PříspěvekNapsal: úte 27.08.2019 20:11 
Mazák
Mazák
Uživatelský avatar

Registrován: 15.2.2009
Příspěvky: 1124
Bydliště: Chýnov - to je kousek od Tábora
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


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Spínač picaxe 08M
PříspěvekNapsal: úte 27.08.2019 21:30 
Mazák
Mazák
Uživatelský avatar

Registrován: 22.11.2005
Příspěvky: 7132
Bydliště: Vsetín
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...


Nahoru
 Profil {RCalbum.cz}  
 
 Předmět příspěvku: Re: Spínač picaxe 08M
PříspěvekNapsal: stř 28.08.2019 8:38 
Mazák
Mazák
Uživatelský avatar

Registrován: 22.11.2005
Příspěvky: 7132
Bydliště: Vsetín
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...


Nahoru
 Profil {RCalbum.cz}  
 
 Předmět příspěvku: Re: Spínač picaxe 08M
PříspěvekNapsal: stř 28.08.2019 9:46 
Mazák
Mazák
Uživatelský avatar

Registrován: 15.2.2009
Příspěvky: 1124
Bydliště: Chýnov - to je kousek od Tábora
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:
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

_________________
EPP samokřídla
fotky: https://mapy.cz/fotografie?fotomapy&x=15&y=49&z=8&aid=861


Naposledy upravil jova dne stř 28.08.2019 10:06, celkově upraveno 1

Nahoru
 Profil  
 
 Předmět příspěvku: Re: Spínač picaxe 08M
PříspěvekNapsal: stř 28.08.2019 10:04 
Mazák
Mazák
Uživatelský avatar

Registrován: 20.2.2011
Příspěvky: 993
Bydliště: Telč
Jen pidi drobnost, spíš offtopic:
Kód:
w0=w0+1
if w0>350 then : w0=0 endif

bych nahradil za
Kód:
w0 = (w0+1) % 351

(% je zbytek po dělení)

_________________
http://semos333.rajce.idnes.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Spínač picaxe 08M
PříspěvekNapsal: stř 28.08.2019 10:09 
Mazák
Mazák
Uživatelský avatar

Registrován: 15.2.2009
Příspěvky: 1124
Bydliště: Chýnov - to je kousek od Tábora
semo píše:
Jen pidi drobnost, spíš offtopic:
Kód:
w0=w0+1
if w0>350 then : w0=0 endif

bych nahradil za
Kód:
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


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Spínač picaxe 08M
PříspěvekNapsal: stř 28.08.2019 10:24 
Mazák
Mazák
Uživatelský avatar

Registrován: 20.2.2011
Příspěvky: 993
Bydliště: Telč
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/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Spínač picaxe 08M
PříspěvekNapsal: stř 28.08.2019 10:36 
Mazák
Mazák
Uživatelský avatar

Registrován: 15.2.2009
Příspěvky: 1124
Bydliště: Chýnov - to je kousek od Tábora
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


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Spínač picaxe 08M
PříspěvekNapsal: stř 28.08.2019 10:50 
Mazák
Mazák
Uživatelský avatar

Registrován: 20.2.2011
Příspěvky: 993
Bydliště: Telč
Ajo, závorky :-).

_________________
http://semos333.rajce.idnes.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Spínač picaxe 08M
PříspěvekNapsal: stř 28.08.2019 12:09 
Moderátor serveru
Moderátor serveru
Uživatelský avatar

Registrován: 28.2.2005
Příspěvky: 20846
Bydliště: Rakovník, CZ
Obrázky: 0
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


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Spínač picaxe 08M
PříspěvekNapsal: stř 28.08.2019 15:14 
Mazák
Mazák
Uživatelský avatar

Registrován: 22.11.2005
Příspěvky: 7132
Bydliště: Vsetín
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...


Nahoru
 Profil {RCalbum.cz}  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 46 ]  Přejít na stránku Předchozí  1, 2, 3, 4  Další

 


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 11 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  

 

  Powered by phpBB® Forum Software © phpBB Group  Český překlad – phpBB.cz 

 

NAVRCHOLU.cz