Stránka 3 z 4
Re: Ovládání návěstidel
Napsal: 17 čer 2020, 12:07
od fulda
Já jsem ve svém příkladu náhodným výběrem použil b10 pro bajt, který se má odeslat a b0 jako pomocnou proměnnou pro odesílací smyčku.
Příkaz serout ti v tomto případě nepomůže, to už zaznělo dávno na začátku. Klidně na něj zapomeň. Znovu si prohlédni co jsem napsal
TADY.
Co se týká tvé úvahy:
Pivrnec78 píše: ↑17 čer 2020, 11:18
A taky nevím, jestli např. číslici "3" si Picaxe uloží jako 10100000 nebo 00000101
tu v rámci starosti o mé duševní zdraví přehlédu.
Re: Ovládání návěstidel
Napsal: 17 čer 2020, 19:59
od Pivrnec78
fulda píše: ↑17 čer 2020, 12:07
Znovu si prohlédni co jsem napsal
TADY.
No, tam jsi napsal stať, které nerozumím. Taky nerozumím obavám o Tvé zdarví.
tu v rámci starosti o mé duševní zdraví přehlédu.
Takže asi nejjednodušší pro mně bude to číslo a celý kód vypsat ručně. Aspoň nebudu muset uvažovat, jak ukládá číslo Picaxe a vyzkouším přenos. Jelikož já budu mít kódy 0 až 9, tak si s tím nějak poradím ... prostě příchozí proměnné dám konkrétní sekvenci ...
Kód: Vybrat vše
low B.4 ; nastav výstup B.4 na 0 - start bit
pause 4 ; čekej 4 ms
high B.4 ; nastav výstup B.4 na 1 - start bit - druhá část
pause 4 ; čekej 4 ms
low B.4 ; "0"
pause 4*7 ; čekej 7x 4 ms
low B.4 ; nastav výstup B.4 na 0 - stop bit
pause 4 ; čekej 4 ms
high B.4 ; nastav výstup B.4 na 1 - stop bit - druhá část
pause 4*3 ; čekej 12 ms
... aspoň budu rozumět tomu, co tam píšu. Díky moc za radu.
Mám ještě jednu otázku, i když asi by mohla patřit do položky "dotazy začátečníka", ale ... dám ji sem ... když chci udělat test svítivek před během programu - jednou na začátku, to asi bych měl tu sekvenci dát před samotný příkaz
start:
, hned za vysvětlení
symbol
, že ...
Re: Ovládání návěstidel
Napsal: 18 čer 2020, 08:59
od fulda
Pivrnec78 píše:protože se chytáš za hlavu z mých dotazů, tak se zeptám tady ... pro tu komunikaci S-com budu posílat data pro číslici "3" v pořadí:
1
0
1
0
0
0
0
Tím myslím, jak to budu psát do programu ...
nebo nejprve nuly a pak číslo na konci?
0
0
0
0
1
0
1
Na to je přeci jednoduchá odpověď na obrázku a textu těsně nad ním:
nejméně významný bit je pro číslo 3 ten nejvíc vpravo, s hodnotou 1, následuje druhý méně významný bit zase s hodnotou 1 a pak všechny významnější bity mají hodnotu 0.
Binárně se číslo 3 zapíše jako 00000011 pokud to má bít na sedm pozic. v protokolu to odesíláš "od konce", nejprve je ale ty start bity.
Pivrnec78 píše:A Ty jsi mi byl doporučený jako osoba, která tu komunikaci S-com pro MTB kdysi tvořila
Tak to jsou pomluvy, já používám návěstidla jinak:
TAKHLE.
Re: Ovládání návěstidel
Napsal: 18 čer 2020, 09:31
od Pivrnec78
Tak jsem se spletl ... se nejedná o č.3, ale o č.5, ale člověk Tvého formátu, by to mohl poznat ...
Re: Ovládání návěstidel
Napsal: 18 čer 2020, 09:50
od Pivrnec78
fulda píše: ↑18 čer 2020, 08:59
Na to je přeci jednoduchá odpověď na obrázku a textu těsně nad ním:
nejméně významný bit je pro číslo 3 ten nejvíc vpravo, s hodnotou 1, následuje druhý méně významný bit zase s hodnotou 1 a pak všechny významnější bity mají hodnotu 0.
Binárně se číslo 3 zapíše jako 00000011 pokud to má bít na sedm pozic. v protokolu to odesíláš "od konce", nejprve je ale ty start bity.
Pivrnec78 píše:A Ty jsi mi byl doporučený jako osoba, která tu komunikaci S-com pro MTB kdysi tvořila
Tak to jsou pomluvy, já používám návěstidla jinak:
TAKHLE.
Na to je možná jednoduchá odpověď pro Tebe, ale já z toho obrázku nejsem vůbec chytrý. Je mi spíše jasnější to, že je jedno, jak je číslo kde zapsané, důležité je, aby na požadovaný
pin došlo v tom správném pořadí ... a to jsi mi objasnil ... takže Ti děkuji za výstižnou odpověď i s Tvým bonusem ... snad to konečně dám dokupy tak, jak to já chci a jak mi to vyhovuje a snad se nezpletu
Re: Ovládání návěstidel
Napsal: 18 čer 2020, 10:30
od fulda
Pivrnec78 píše:Ahoj, koukám, že si budeme dopisovat na více frontách ... já Ti napíšu tady a Ty mi odpovíš tam, taky zajimavý způsob ...
Díval jsem se na ten Tvůj upravený převod ...
if b10 % 2 = 0 then low B.4 else high B.4 ; další bit k odeslání
A pořád jsem nechápal "co tím chceš říct", ale pak mně napadla jedna myšlenka a našel jsem si, jak se převádí číslo z desítkové soustavy do dvojkové ... takže Ty tu hodnotu vydělíš "2" a pokud je zbytek "0", tak se vývod nastaví na "0" a pokud je zbytek "1", tak se nastaví na "1", takže pokud tomu dobře rozumím, u každého lichého čísla bude první "1" a u každého sudého bude první "0". Protože pro číslo "8" to bude 0001 a doplněno na celkem 7 bitů o další 000 a pro číslo "4" to bude 001 a pak 0000. Takže třeba "13" bude 1011 a 000.
Tím se vyjasnilo trochu více věcí, ale musím přiznat, že doteď jsem tuto informaci nepotřeboval.
Celou smyčku si uložím jako vzorovou s nějakýma poznámkama a protože toto pro mně není podstatné, a až to nebudu potřebovat, tak tuto informaci zapomenu, takže se časem možná budeš se mnou rozčilovat, že jsme to už někde řešili, protože časem taky zapomenu i to, že jsme to už řešili. A taky se může stát, že zapomenu, kam jsem si uložil i ten vzor ...
Ano, to byla právě ta starost o mé duševní zdraví.
Ještě bych v rámci nuceného vzdělání poznamenal, že když něco stojí 01 Kč, je to většinou levnější, než když něco stojí 10 Kč. A to bez ohledu na soustavu v jaké je ta cena napsaná. Proto se u desítkové soustavy píše jejméně významná číslice na konci a nejvíce váznamná číslice na začátku. Tedy pokud se nám něco zdraží z 10 Kč na 11 Kč, je to nevýznamné zdražení, ale pokud se něco zdraží z 10 Kč na 20 Kč, je to změna výsnamná.
Tím jsem chtěl říci, že je dobré psát ta binární čísla ve správném pořadí.
Ačkoli tady je omluvitelné, že je píšeš v pořadí jak se odesílají
Re: Ovládání návěstidel
Napsal: 18 čer 2020, 10:37
od Pivrnec78
fulda píše: ↑18 čer 2020, 10:30
Pivrnec78 píše:Ahoj, koukám, že si budeme dopisovat na více frontách ... já Ti napíšu tady a Ty mi odpovíš tam, taky zajimavý způsob ...
Díval jsem se na ten Tvůj upravený převod ...
if b10 % 2 = 0 then low B.4 else high B.4 ; další bit k odeslání
A pořád jsem nechápal "co tím chceš říct", ale pak mně napadla jedna myšlenka a našel jsem si, jak se převádí číslo z desítkové soustavy do dvojkové ... takže Ty tu hodnotu vydělíš "2" a pokud je zbytek "0", tak se vývod nastaví na "0" a pokud je zbytek "1", tak se nastaví na "1", takže pokud tomu dobře rozumím, u každého lichého čísla bude první "1" a u každého sudého bude první "0". Protože pro číslo "8" to bude 0001 a doplněno na celkem 7 bitů o další 000 a pro číslo "4" to bude 001 a pak 0000. Takže třeba "13" bude 1011 a 000.
Tím se vyjasnilo trochu více věcí, ale musím přiznat, že doteď jsem tuto informaci nepotřeboval.
Celou smyčku si uložím jako vzorovou s nějakýma poznámkama a protože toto pro mně není podstatné, a až to nebudu potřebovat, tak tuto informaci zapomenu, takže se časem možná budeš se mnou rozčilovat, že jsme to už někde řešili, protože časem taky zapomenu i to, že jsme to už řešili. A taky se může stát, že zapomenu, kam jsem si uložil i ten vzor ...
Ano, to byla právě ta starost o mé duševní zdraví.
Ještě bych v rámci nuceného vzdělání poznamenal, že když něco stojí 01 Kč, je to většinou levnější, než když něco stojí 10 Kč. A to bez ohledu na soustavu v jaké je ta cena napsaná. Proto se u desítkové soustavy píše jejméně významná číslice na konci a nejvíce váznamná číslice na začátku. Tedy pokud se nám něco zdraží z 10 Kč na 11 Kč, je to nevýznamné zdražení, ale pokud se něco zdraží z 10 Kč na 20 Kč, je to změna výsnamná.
Tím jsem chtěl říci, že je dobré psát ta binární čísla ve správném pořadí.
Ačkoli tady je omluvitelné, že je píšeš v pořadí jak se odesílají
Tak jsi ze mě udělal veřejně blbečka ... už jsi spokojnej?
Re: Ovládání návěstidel
Napsal: 18 čer 2020, 10:50
od Pivrnec78
fulda píše: ↑12 čer 2020, 13:33
Kód: Vybrat vše
low C.1 ; nastav výstup C.1 na 0 - start bit
pause 4 ; čekej 4 ms
high C.1 ; nastav výstup C.1 na 1 - start bit - druhá část
pause 4 ; čekej 4 ms
for b0 = 0 to 6 ; cyklus pro jednotlivé bity
if b10 bit 0 clear then low C.1 else high C.1 ; další bit k odeslání
pause 4 ; čekej 4 ms
b10 = b10 / 2 ; připrav si další bit
next b0 ; konec cyklu
low C.1 ; nastav výstup C.1 na 0 - start bit
pause 4 ; čekej 4 ms
high C.1 ; nastav výstup C.1 na 1 - start bit - druhá část
pause 4*3 ; čekej 12 ms
Když doplním úpravu příkazu
If
na:
Kód: Vybrat vše
low C.1 ; nastav výstup C.1 na 0 - start bit
pause 4 ; čekej 4 ms
high C.1 ; nastav výstup C.1 na 1 - start bit - druhá část
pause 4 ; čekej 4 ms
for b0 = 0 to 6 ; cyklus pro jednotlivé bity
if b10 % 2 = 0 then low C.1 else high C.1 ; další bit k odeslání
pause 4 ; čekej 4 ms
b10 = b10 / 2 ; připrav si další bit
next b0 ; konec cyklu
low C.1 ; nastav výstup C.1 na 0 - start bit
pause 4 ; čekej 4 ms
high C.1 ; nastav výstup C.1 na 1 - start bit - druhá část
pause 4*3 ; čekej 12 ms
Neměl bych nejprve vydělit hodnotu proměnné, abych zjistil hodnotu zbytku?
A pak hodnotou zbytku určit jestli bude pin v "1" nebo "0"?
Ty tady nejdříve určuješ zbytek a pak teprve dělíš ...
Re: Ovládání návěstidel
Napsal: 18 čer 2020, 11:52
od fulda
Ne, to modulo je zbytek po dělení, nejprve potřebuješ zjistit, jestli je číslo liché a pak teprve udělat div aby jsi dostal další řád.
Udělej si příklad s číslem 5
První kolo:
5 % 2 = 1 --> odesílám 1
5 / 2 = 2.5 --> uložím si 2, protože mám jen byte
druhé kolo:
2 % 2 = 0 --> odesílám 0
2 / 2 = 1 --> uložím si 1
třetí kolo
1 % 2 = 1 --> odesílám 1
1 / 2 = 0.5 --> uložím si 0, protože mám jen byte
... a další kola už jsou s nulou, tak je nemá cenu psát
Re: Ovládání návěstidel
Napsal: 18 čer 2020, 13:35
od Pivrnec78
SUPER, takže přece jen to nemusím vypisovat ručně ...
Děkuji ...