Ahoj,
o5 mam dotaz k programovani. Ale tentokrat bych potreboval poradit jaka cesta je idealni, popr. navrhnout lepsi reseni. Takze potrebuji pro ardupilota nakonfiguraovat prepinani 6ti modu (potrebuji 6ti polohovy prepinac). Vybral jsem si k tomu prepinace SE & SF. Take pri prepnuti potrebuji zahlasit v jakem modu se nachazim. A zde jsou me napady jak to naprogramovat:
1/ 6 polohovy prepinac s temito hodnotami kolem -62, -37, -12, 13, 38, 63
moznost a/ zdroj SE vaha na 25%, offset na -37% vynasobene SF s vahou 100%
moznost b/ Pomoci logickych prepinacu pro kazdy mod (napr. L1 az L6) nadefinovat mix:
pro -62: zdroj L1, vaha -62, switch L1
pro -37: zdroj L2, vaha -37, switch L2
.... atd pro zbyle hodnoty
Reseni a/ je funkcni, vzhledem k toleranci pro jednotlive mody mi nevadi nejaka minimalni odchylka hodnot (hodnoty jsem stejne nastrilel nekde na stred mezi pro jednotlive mody). Reseni b/ mi ale prijde vhodnejsi, protoze logicke prepinace stejne potrebuji pro hlaseni do jakeho modu jsem se prepnul a zobrazeni na display.
2/ nastaveni logickych switchu na kombinaci dvou fyzickych switchu (ke kazdemu logickemu switchi pridam zpozdeni 0,7s abych eliminoval mody pres ktere se dostavam do pozadovaneho modu - velmi uzitecne pri hlaseni aktualniho modu)
moznost a/ funkce AND, hodnota V1 SF a hodnota V2 SE (nakombinovat na 6 moznosti)
moznost b/ funkce AND, hodnota V1 SF, pro AND Switch SE (nakombinovat na 6 moznosti)
moznost c/ porovnavaci funkce (>, <), hodnota V1 SF a hodnota V2 = 0, pro AND Switch SE (nakombinovat na 6 moznosti)
Zde je podle me nejvhodnejsi reseni a/. Ty zbyle dve jsem jenom uvedl aby bylo videt jak to jde taky udelat, ale ne tou nejlepsi cestou.
Takze jsem si zvolil moznost 1b/ a 2a/. Bohuzel ale narazim na to, ze diky zpozdeni u logickych switchu (0,7s) se mi pri prepnuti na chvili hodi kanal na nulu, nez vyprsi delay. Napadlo me reseni, ze bych naplnil nejakou globalni promennou posledni hodnotou kanalu a tu tam dal pokud nebude ani jeden z logickych prepinacu na hodnote true.
Nechtelo se mi psat skript a tak jsem pouzil toto reseni:
Logicke prepinace:L7 = !L1 & !L2 & !L3
L8 = !L4 & !L5 & !L6
L9 = L7 & L8
pridani funkce:kdyz je !L9, tak GV1 = CH5
Pridani mixu ke kanalu 5, ktery pouzivam pro 6ti polohovy prepinac:zdroj L9, vaha GV1, switch L9
Toto funguje dobre, az na pocatecni stav, kdy po zapnuti se ceka 0,7s na nastaveni L1 (vychozi poloha prepinacu), tim padem je hodnota kanalu 5 rovna nule. Toto lze osetrit nastavenim GV1 na hodnotu vychoziho modu (-63) pri ON, anebo se na to vyprdnout, protoze stejne clovek musi zapnout radio a az pak stroj (a to za 0,7s nestihne). Zvolil jsem vyprdnout se na to

Jestli to jde udelat lepe, tak budu rad za tip, na nektere veci jsem perfekcionista
