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:
https://www.mtb-model.com/elektro/s-com.htm píše:Dále jsou vysílány jednotlivé bity kódu návěsti b0 až b6, postupně od nejméně významného po nejvýznamnější (MSB).
Obrázek
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:
https://www.mtb-model.com/elektro/s-com.htm píše:Dále jsou vysílány jednotlivé bity kódu návěsti b0 až b6, postupně od nejméně významného po nejvýznamnější (MSB).
Obrázek
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 ...