Mínusová hodnota a picaxe

Howky
Příspěvky: 56
Registrován: 07 dub 2016, 15:41

Mínusová hodnota a picaxe

Příspěvek od Howky » 08 říj 2017, 19:12

Zdravím vespolek pánové
Otázka zní může nějakým způsobem picaxe zpracovat mínus hodnotu.

Pc posílá do picaxe data, ovšem občas je hodnota např -12 nebo mínus -55 apod.
Je možné nějak to mínus zpracovat ?

Zkoušel jsem hledat na netu ale zatím nic.
Předem děkuji za rady :)

Howky
Příspěvky: 56
Registrován: 07 dub 2016, 15:41

Re: Mínusová hodnota a picaxe

Příspěvek od Howky » 08 říj 2017, 19:52

Můj program nyní vypadá takto:

Kód: Vybrat vše

setfreq m16

symbol hodnota = w3
start: ; zacatek programu
serin C.4,N9600_16,("kpk"),#hodnota ; nastaveni portu a nazev hodnoty kpk
if hodnota=0 then goto stav1 ;rovna se hodnota kpk 0 jdi na stav1
if hodnota=1 then goto stav2 ; rovna se hodnota kpk 1 jdi na stav2
goto start: ;

stav1:  
low B.0  ;zhasni pin B.0
goto start ; zpet na zacatek programu start

stav2: 

high B.0 ;rozsvit pin B.0
goto start

Howky
Příspěvky: 56
Registrován: 07 dub 2016, 15:41

Re: Mínusová hodnota a picaxe

Příspěvek od Howky » 08 říj 2017, 19:53

A ted bych např potřeboval aby místo if hodnota=1 byla vlastně hodnota mínusová takže if hodnota=-1

tomasp
Příspěvky: 41
Registrován: 15 dub 2014, 23:01

Re: Mínusová hodnota a picaxe

Příspěvek od tomasp » 08 říj 2017, 23:09

Ahoj,
s Picaxe jsem nikdy nepracoval, ale už dlouho jsem se na něj chtěl mrknout, tak jsem to udělal teď. Moje odpověď je tedy jen teoretická, nemám možnost to prakticky vyzkoušet.

Podle dokumentace k serin znak '#' znamená, že následující přijatou sérii ASCII číslic převede na byte nebo word (podle počtu cifer). Úvodní nečíselné znaky vynechá, pak začne převádět na číslo a první nečíselný znak poté převod ukončí.

Dále Picaxe sám nemá koncept záporného čísla, všechna čísla interpretuje jako celá kladná (0 .. 255, 0 .. 65535 podle typu proměnné).

Z toho mi plynou dvě možnosti, jak se to může chovat při čtení čísla s úvodním znaménkem '-':
  1. Opravdu záporná čísla nezná a neumí je ani převést. Pak by podle mě úvodní znaménko vynechal (protože to pro něj je nečíselný znak) a převedl by až následující číslice. Takže "-1" na vstupu by převedl na kladnou 1.
    Zdá se mi to jako nejpravděpodobnější, ale na to by si už asi při svých pokusech přišel.
  2. Podcenil jsem ho, a je ochoten při převodu reagovat i na znaménko '-'. Pak by záporné číslo nejspíš převedl do doplňkového dvojkového kódu. Takže "-1" na vstupu by převedl na 255 (0xff hexa) nebo 65535 (0xffff) pokud by se jednalo o proměnnou typu word.
Jak jsem psal, já to nemůžu zkusit, tak to musíš zjistit sám. Podle zjištěného chování to pak můžeme řešit dál.

Tom

Howky
Příspěvky: 56
Registrován: 07 dub 2016, 15:41

Re: Mínusová hodnota a picaxe

Příspěvek od Howky » 09 říj 2017, 07:47

1.Variantu už vyzkoušeno mám, tam opravdu nebere mínus v potaz a bere ho jako 1 :-)
druhou variantu vyzkoušenou nemám :)

Uživatelský avatar
fulda
Příspěvky: 626
Registrován: 04 led 2016, 17:18

Re: Mínusová hodnota a picaxe

Příspěvek od fulda » 09 říj 2017, 09:17

Tak na to není potřeba dělat tak složitý průzkum.
Stačí si například přečíst základní PPŘÍČŮRKU někam tak do strany 2, v jejíž první polovině je napsáno:
PICAXE – příručka programátora píše:Všechny univerzální proměnné jsou bez znaménka (unsigned) a na začátku programu obsahují hodnotu
nula.
Takže otázka jak to dělat se transformuje na sekvence typu:
podívej se, jestli je první znak -, pokud ano, tak proveď proměnná = 128 - #řetězec, jinak proveď proměnná = 128 + #řetězec.
Ale takovou sekvenci neumím nijak efektivně popsat v jazyce picaxe basic, takže jsem mlčel.

Zajímavé je, jak se například picaxe chová k funkcím jako sin() a cos()
Za pravopisné chyby v této zprávě může moje učitelka češtiny.

tomasp
Příspěvky: 41
Registrován: 15 dub 2014, 23:01

Re: Mínusová hodnota a picaxe

Příspěvek od tomasp » 09 říj 2017, 12:45

Howky píše:
09 říj 2017, 07:47
1.Variantu už vyzkoušeno mám, tam opravdu nebere mínus v potaz a bere ho jako 1 :-)
druhou variantu vyzkoušenou nemám :)
Pokud to funguje podle varianty 1., tak ta druhá varianta nebude správná (je to buď první, nebo druhá).

V tom případě by mě ještě zajímalo, jestli to PC posílá kladná čísla se znaménkem '+' nebo bez něj. Případně, jestli ten formát dat z PC mužeš nastavit tak, aby to '+' posílal. Pak by to čtení bylo jednodušší. Ale půjde to i bez něj.

Howky
Příspěvky: 56
Registrován: 07 dub 2016, 15:41

Re: Mínusová hodnota a picaxe

Příspěvek od Howky » 09 říj 2017, 13:51

No ten program posílá plusové hodnoty např takto ZK1, ZK5 , ZK6 atd :) ty minusové bohužel posílá stím mínus ZK-2 , ZK-6 atd

Vladimir66
Příspěvky: 243
Registrován: 02 dub 2014, 15:30

Re: Mínusová hodnota a picaxe

Příspěvek od Vladimir66 » 09 říj 2017, 19:27

ty minusové bohužel posílá stím mínus ZK-2 , ZK-6 atd
pises bohuzel.
jak by to tedy bylo bohudik ?? ( jen jsem zvedavy. pro minusovou hodnotu je pro me minus idealni )

Howky
Příspěvky: 56
Registrován: 07 dub 2016, 15:41

Re: Mínusová hodnota a picaxe

Příspěvek od Howky » 09 říj 2017, 20:38

bohouzel nebot se me nedari tu minus polohu zpracovat :)

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host