Dotazy začátečníka

Odpovědět
Pivrnec78
Příspěvky: 73
Registrován: 30 dub 2017, 15:25

Nastavení hodnot na výst. pinech ...

Příspěvek od Pivrnec78 »

Zdravíčko, prosba o radu ...
Když potřebuju konkrétní piny nastavit, aby se v jeden okamžik "překlopily" - celý port, tak jsem našel ve starší dokumentaci, že napíšu:
let pins = %11000011 ; výstupy 7,6,0,1 on, zbylé off
let pins = %00000000 ; všechny výstupy off
...
Když to budu praktikovat dnes třeba na 20M2, tak jen doplním na "pinsC" nebo "pinsB" - uvžuju správně?

No a dostávám se k dalšímu problému - co když na portu "C" nebo "B" budu mít 4 vstupy a 4 výstupy, ale ty výstupy budu potřebovat taky společně nastavit - třeba pro kombinace BCD (pro převodník BCD na 1 z 10) jak potom provedu tento zápis?
Když budu nastavovat postupně highC.1, low C.2, highC.3, lowC.4 a pro jinou kombinaci zase postupně ... tak mi bude převodník taky postupně najíždět (než vytvořím celé slovo, než přepíšu potřebnou kombinaci). Pořebuju kombinaci na oněch pinech v jeden okamžik.
Taky použiju "let pins = %..."? Jen doplním, že v době vytáření kombinací budu se vstupy dále pracovat ...
Předem díky za konzultaci
jova
Příspěvky: 361
Registrován: 16 pro 2013, 11:40

Re: Dotazy začátečníka

Příspěvek od jova »

Na výběr zda se jedná o pin vstupní nebo výstupní se používá příkaz dirsC.
Ukázka použití je třeba zde: http://robodoupe.cz/2015/picaxe-krokohratky-1/
Pivrnec78
Příspěvky: 73
Registrován: 30 dub 2017, 15:25

Re: Dotazy začátečníka

Příspěvek od Pivrnec78 »

Dík za odp, ale já jsem tu druhou část asi blbě napsal ... Tak jinak ...
Mohu u 20M2 napsat zápis "let pinsC = %00001111", abych dostal na výstupu C3, C2, C1, C0 log.1 ve stejný okamžik, když C7, C6, C5 a C4 jsou nataveny jako vstupní? Jak ošetřím v tomto zápisu ty 4 vstupní piny?
Pivrnec78
Příspěvky: 73
Registrován: 30 dub 2017, 15:25

Re: Dotazy začátečníka

Příspěvek od Pivrnec78 »

Tak asi ten předchozí dotaz je zbytečný, nicméně se zeptám na konkrétní věc ohledně "DIRS" ...
dirsC = %11111111 ; všechny piny jako výstupní - to mi moc nepomáhá - já potřebuju jen část ...
Až na posledním příkladu jsem narazil na:
let dirsC = %00010111 ; C.4, C.2, C.1 a C.0 jako výstup
Ale ...
když jsem si zadal do vyhledávače "picaxe dirs", tak mi vypadl odkaz http://wiki.sps-pi.cz/index.php/PICAXE_-_BASIC_commands
a ten uvádí, že:
let dirs = (použitelné pro PICAXE: 08, 08M) let dirsc = (použitelné pro PICAXE: 28X, 40X)
syntaxe: {LET} dirs = value {LET} dirsc = value - value jsou proměnné nebo konstanty, jejichž hodnota je uložena do proměnné dirs (dirsc).
funkce: Konfiguruje vývody kontroléru jako vstupní nebo výstupní (let dirs, na PICAXE-08/08M) Konfiguruje vývody kontroléru na portu C jako vstupní nebo výstupní (let dirsc, na PICAXE-28X/40X). Hodnota 1 příslušného bitu značí vstup, hodnota 0 značí výstup.

Pokud se piny čtou jak jsem pochopil zleva doprava od 8 do 0, tak Váš příklad je přesně naopak protože jeden příklad má zápis:
let pins = %11000011 ‘ switch outputs 7,6,1,0 on
a druhý (Váš) zápis
let dirsC = %00010111 ; C.4, C.2, C.1 a C.0 jako výstup ...
pokud je hodnota "1" jako vstup, tak je tento zápis opačný ať už z pozice vstup / výstup nebo z pozice 8 až 0 / 0 až 8 ...

Jak to tedy je správně? Asi se v tom nějak motám ... :?
Vladimir66
Příspěvky: 385
Registrován: 02 dub 2014, 15:30

Re: Dotazy začátečníka

Příspěvek od Vladimir66 »

mazu svuj chybny komentar.
omlouvam se.
http://www.picaxe.com/BASIC-Commands/Variables/let/

V66
Naposledy upravil(a) Vladimir66 dne 29 kvě 2017, 20:50, celkem upraveno 4 x.
Pivrnec78
Příspěvky: 73
Registrován: 30 dub 2017, 15:25

Re: Dotazy začátečníka

Příspěvek od Pivrnec78 »

Vladimir66 píše: 29 kvě 2017, 16:58 ... je super, ze to nekdo cte a pta se.
-V66
Když potřebuju / chci vytvořit program na cca 4 procesory a nikdy jste to neřešil, tak se to musím aspoň trochu naučit, aby to bylo podle mých představ ...
Jinak dík za reakci ...
Pivrnec78
Příspěvky: 73
Registrován: 30 dub 2017, 15:25

Re: Dotazy začátečníka

Příspěvek od Pivrnec78 »

Vladimir66 píše: 29 kvě 2017, 16:58 mazu svuj chybny komentar.
omlouvam se.
http://www.picaxe.com/BASIC-Commands/Variables/let/

V66
No, tak na stránkách www.picaxe.cz je v tom případě chyba v překladu ... http://www.picaxe.cz/wp-content/uploads/Let.pdf
Pivrnec78
Příspěvky: 73
Registrován: 30 dub 2017, 15:25

Re: Dotazy začátečníka

Příspěvek od Pivrnec78 »

Tak abych si to ujasnil úplně, tak použiju můj konkrétní případ.
Mám 20M2 a port C bude celý vstupní a port B bude mít 3 vstupy na B.7, B.6 a B.5 a 5 výstupů, ale pin B.4 bude zvukový ...
Piny portu C budu na vstup nastavovat pravděpodobně příkazem "IF" a taktéž to bude s piny B.7, B.6 a B.5, ale jelikož potřebuji na B.3, B.2, B.1 a B.0 log hodnotu v jeden okamžik, předpokládám, že to napíšu takto:
let dirsB = %00011111
a potom budu požívat kombinace např.:
let pinsB = %00001111
let pinsB = %00001001 atd ...

Je moje úvaha správná?
Uživatelský avatar
jrt
Příspěvky: 1921
Registrován: 17 úno 2013, 17:13

Re: Dotazy začátečníka

Příspěvek od jrt »

Zaregistroval jsem tuhle debatu, ale momentálně nemám čas se těmi nalezenými chybami zabývat. Snad později.
Ale díky za upozornění.
jrt
Pivrnec78
Příspěvky: 73
Registrován: 30 dub 2017, 15:25

Re: Dotazy začátečníka

Příspěvek od Pivrnec78 »

Zdravíčko,
tak "let dirs" a "let pins" mám již zpracováno :) a děkuji Vám za radu :D ...
Odpovědět