Mínusová hodnota a picaxe

DavidO
Příspěvky: 530
Registrován: 01 kvě 2013, 21:27

Re: Mínusová hodnota a picaxe

Příspěvek od DavidO » 30 říj 2017, 10:47

AlesH píše:
30 říj 2017, 08:49
obávám se, že obecný "serin" v PICAXE je jen softwarové řešení sériové linky, bez hardwarového bufferu přicházejících znaků, takže je možné, že posloupnost "serinů" nestihne správně zpracovat bezprostředně po sobě jdoucí znaky v jedné sekvenci.
V návrhu programu je sice mezi "seriny" jen velmi málo příkazů, ale podle mých zkušeností může zpracování i jen jediného řádku PICAXE programu trvat klidně i milisekundu, a to by pro softwarové zpracování posloupnosti na sérové lince při rychlosti 9600 bd už asi bylo moc dlouhé. S jistotou to ale nevím, muselo by se to prakticky vyzkoušet.
To máš asi pravdu. Čistě teoreticky je při 9600 Bd reálná rychlost přijímání max. 960 zn./s, Picaxe na 16MHz vykoná max. 4.000.000 instrukcí za sekundu, čili na zpracování jednoho bajtu má nejvýše lehce nad 4000 instrukcí. Jenže když to je softwarový seriák, tak zřejmě dost velkou porci z toho sežere vlastní čtení.

V takovém případě bych to tedy spíš řešil buď nepoužitím Picaxe ;) (napsal bych si to sám v C nebo ASM s bufferováním a přerušením) anebo přečtením rovnou víc znaků najednou serin C.4,N9600_16,("pt"),znak_A, znak_B, znak_C, znak_D (pokud přicházejí max. tříciferná čísla, pro víc cifer by se přidala další proměnná) a následným zpracováním.
Ovšem musel bych to udělat při vědomí že a) pokud pt bude poslední příkaz a zároveň to nebude záporné trojciferné číslo, tak se to zasekne, b) bude to vždy umět zpracovávat právě a jen příkazy 'pt', protože to z následujícího příkazu může ukousnout nějaká písmena na začátku (o tolik, kolik mělo číslo méně než 3 cifry a znamínko), c) pokud půjdou dva pt příkazy za sebou a první nebude záporné trojciferné číslo, tak to ten druhý bude ignorovat (přímý důsledek b)).

Uživatelský avatar
Dex
Administrátor
Příspěvky: 883
Registrován: 16 úno 2013, 14:26

Re: Mínusová hodnota a picaxe

Příspěvek od Dex » 30 říj 2017, 10:55

PICAXE mají i "hw sériák" což by v tomto případě mohlo být užitečné ;)
"all your robots are belong to us"
robodoupe.cz | rxd.cz | codetory.cz

DavidO
Příspěvky: 530
Registrován: 01 kvě 2013, 21:27

Re: Mínusová hodnota a picaxe

Příspěvek od DavidO » 30 říj 2017, 10:59

smekac píše:
30 říj 2017, 09:18
musím uznat že příspěvek Davida je zajímavý a několik věcí jsem do programu zapracoval a dostal se tím asi na 2/3 původní délky programu, za což mu děkuji, samotného by mě to asi nenapadlo.
Rádo se stalo.
smekac píše:
30 říj 2017, 09:18
Jak píše Aleš, podmínky na seriové lince budou skoro vždy "obvyklé" tedy se to předpokládá i v programu proto je možná z pohledu zkušenějších kolegů nedokonalý :)
I tak se s tím malým kašpárkem dá udělat lepší divadlo, tj. pokusit se maximálně využít jeho možnosti a zpracovat toho co nejvíc.
smekac píše:
30 říj 2017, 09:18
1. je to jak píšeš ... příklad "LVN10LVS140LPV1560PT15 .... "
2. počet cifer je volitelný s tím, že hodnota se nedoplňuje do daného formátu tj. 5 je PT5 a 50 je PT50
Aha, tak v tom případě můj kód nebude umět dva pt hned po sobě, protože poslední čtení v cyklu (když se zjistí, že to už není číslice) už načetlo 'p' a tedy tenhle pt se při dalším čekání na pt nutně přeskočí. To by se dalo vyřešit tím, že bych nepoužil ten institut kvalifikátoru, ale kontroloval bych písmena p a t sám. Což by se ovšem, jak podotkl Aleš, nemuselo stihnout.
smekac píše:
30 říj 2017, 09:18
Ano, tak jak jsem uvedl zdroják, tak to funguje :lol: :lol:
Spíš "vypadá to, že to funguje a problémy co to má mi nevadí" ;)

DavidO
Příspěvky: 530
Registrován: 01 kvě 2013, 21:27

Re: Mínusová hodnota a picaxe

Příspěvek od DavidO » 30 říj 2017, 11:08

Dex píše:
30 říj 2017, 10:55
PICAXE mají i "hw sériák" což by v tomto případě mohlo být užitečné ;)
No maj, ale když si autor začal s tím serin, tak ho asi nechtěl ;)
A s ním si taky nezvolíš baudrate, jestli to dobře chápu, takže pro 9600 by musel zpomalit takt Picaxe na 8 nebo 4 MHz (M2/X2). Což by vadit nemuselo, ba naopak proti softwarovému zpracování seriáku by to nejspíš bylo dokonce rychlejší :D.

Uživatelský avatar
Dex
Administrátor
Příspěvky: 883
Registrován: 16 úno 2013, 14:26

Re: Mínusová hodnota a picaxe

Příspěvek od Dex » 30 říj 2017, 11:30

Třeba o tom jen autor nevěděl :) PICAXE to totiž dříve neuměl a až od M2 tam ta možnost je ;)
"all your robots are belong to us"
robodoupe.cz | rxd.cz | codetory.cz

Odpovědět

Kdo je online

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