Dotazy začátečníka 2

Odpovědět
DavidO
Příspěvky: 1118
Registrován: 01 kvě 2013, 21:27

Re: Dotazy začátečníka 2

Příspěvek od DavidO »

Zdá se mi, že to nebude jak chceš. Když w6 bude 149, tak na řádku 19 se do w2 uloží 65528. Výraz 149-150*8 se totiž vyhodnotí postupně takhle:
1. 149-150=65535 (protože binárně 0000 0000 1001 0101 - 0000 0000 1001 0110 = 1111 1111 1111 1111 což je těch 65535, neboli šestnáctkově FFFF)
2. 65535*8=65528 (protože binárně 1111 1111 1111 1111 * 0000 0000 0000 1000 = 1111 1111 1111 1000 což je těch 65528, neboli šestnáctkově FFF8)

Prostě vzpomeň si na svá osmibitová léta a počítej jen v tom omezeném rozsahu. Přetečení nahoru ani podtečení pod nulu nevadí, prostě se ty čísla oříznou zase na těch několik málo bitů. Říkej si - já jsem procesor, záporná čísla neznám, to si prý "uživatelé" někde venku vymysleli, že se rozsah bajtu (nebo slova) dá využít na způlky na kladná a způlky na záporná čísla a nějak si to zobrazujou divnejma symbolama, já znám jen nuly a jedničky.

Znovu se přeptám: Kolik chceš, aby vyšlo w2, když w6 bude 149? Kolik chceš, aby ti vyšlo w2, když W6 bude 80?
icalan
Příspěvky: 8
Registrován: 29 říj 2018, 11:39

Re: Dotazy začátečníka 2

Příspěvek od icalan »

Já to počítám matematicky, pri w6= 80 w2=560, pri w6=149 w2=8
zápis by tedy měl být w2 = 150-w6*8 místo původního matematicky w2=w6-150*(-8) ?
DavidO
Příspěvky: 1118
Registrován: 01 kvě 2013, 21:27

Re: Dotazy začátečníka 2

Příspěvek od DavidO »

Ano. Pokud to má být lineární přepočet, tak ta přímka má podle těch dvou bodů rovnici y = -8x + 1200 což se dá napsat i jako y = (150-x) * 8 neboli y = (x-150) * -8.

Píšu to tedy se závorkami, jak se výrazy v matematice píšou; jak se to zapíše pro Picaxe je jiná věc a Picaxe pokládám v tomhle směru za špatný nebo přinejmenším velmi škodlivý - výraz se tam počítá striktně zleva doprava a nesmějí se použít závorky. To buď musel vymyslet magor, nebo to udělal lenoch a manažer to pak prohlásil za fíčuru.
David
Příspěvky: 39
Registrován: 19 dub 2013, 18:05

Re: Dotazy začátečníka 2

Příspěvek od David »

Zdravím,
nemáte někdo zkušenosti s výzkumem a vývojem :) snímače proudu s použitím snímačů například ... http://henrysbench.capnfatz.com/henrys- ... -tutorial/ a procesorů PICAXE ?

David
Marek975
Příspěvky: 2
Registrován: 03 kvě 2019, 23:17

Re: Dotazy začátečníka 2

Příspěvek od Marek975 »

Ahojte,

zacal som s programovanim a skladanim maleho testera pre 10vstupov a 10vystupov s pouzitim picaxe 28X2.

Zapojenie mam dobre zvladnute, no problem mam ze nejako nechce mi nacitat na vstupe H/L hodnotu.
Program som zostavil sposobom:
B7 vystup
B6 vstup ( ak je na B6 log 1 pokracuj dalej ak log. 0 vrat sa na zaciatok) no problem mam s tym ze aj ked nieje fyzicky prepojena B7 s B6 pokracuje to dalej a nevracia sa to spat. Pouzival som prikaz IF, THEN.

Viete mi s tym niekto poradit? Ďakujem
jova
Příspěvky: 361
Registrován: 16 pro 2013, 11:40

Re: Dotazy začátečníka 2

Příspěvek od jova »

Dej sem pomocí </> ten konkrétní kus kódu.
DavidO
Příspěvky: 1118
Registrován: 01 kvě 2013, 21:27

Re: Dotazy začátečníka 2

Příspěvek od DavidO »

Radši ne kus, ale celý. (případně jako přílohu)
Marek975
Příspěvky: 2
Registrován: 03 kvě 2019, 23:17

Re: Dotazy začátečníka 2

Příspěvek od Marek975 »

Ahojte,

prikladam kod.

Marek
kod picaxe 28X2.docx
(11.77 KiB) Staženo 357 x
jova
Příspěvky: 361
Registrován: 16 pro 2013, 11:40

Re: Dotazy začátečníka 2

Příspěvek od jova »

Co jsem to testoval v simulátoru, tak to pracuje jak má. Optal bych se, jak máš ty vstupy ošetřené?
Jak na ně přivádíš ty logické 1 a 0, jsou tyto stavy jednoznačné?
Já to dělám obráceně. Na vstup přivedu logickou 1 pomocí rezistoru 10k napojeného na +5V a když potřebuji změnit stav, přivedu tam log. 0 jako 0V pomocí vypínače nebo tlačítka.
U té 28X2 by jsi logickou 1 mohl na vstupy B.0-B.7 "dostat" příkazem pullup, pak by jsi nemusel připojovat ty vnější rezistory 10k.
Pivrnec78
Příspěvky: 73
Registrován: 30 dub 2017, 15:25

Re: Dotazy začátečníka 2

Příspěvek od Pivrnec78 »

Zdravím,
potřebuju napsat podmínku pro více podmínek, ale kombinace And a Or ... jak to mám napsat - jak je to správně?

If 1 = 0 and 2 = 4 or
If 1 = 0 and 2 = 6 or
if 1 = 0 and 2 = 7 then ...
endif

nebo

If 1 = 0 and 2 = 4 or 2 = 6 or 2 = 7 then ...
endif
Odpovědět