Dotazy začátečníka

Odpovědět
hubacekp
Příspěvky: 259
Registrován: 24 úno 2013, 13:40

Re: Dotazy začátečníka

Příspěvek od hubacekp »

Ahoj, pokud k 08M2 připojíš reaktor z tritia, dostaneš 1,6V a 800 nano amps a vydrží 12 let. Potom dodá 1/2 energie.
Minimálně dobré na hraní:
http://hackaday.com/2016/12/01/make-you ... r-battery/
Uživatelský avatar
fulda
Příspěvky: 1364
Registrován: 04 led 2016, 17:18

Re: Dotazy začátečníka

Příspěvek od fulda »

Ahoj vespolek,

rozhodl jsem se, že se za 30 minut naučím picaxe a už dost přetahuji :)

Koukám do příkladových programů, ale nikde jsem nenašel nic, co by vyžadovalo nějaké stabilní časování. Dejme tomu použití LED matice.
Je vůbec možné se nějak dostat ke stabilnímu času? Něco jako - každých 10ms vyvolej tuto část programu? (a v programu si pak rozsvítím další řádek matice)

Díky
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
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 »

Tohle už je pro PICAXE vyšší dívčí.
Podívej se na setintflags a na settimer.
jrt
Uživatelský avatar
fulda
Příspěvky: 1364
Registrován: 04 led 2016, 17:18

Re: Dotazy začátečníka

Příspěvek od fulda »

jrt píše:Tohle už je pro PICAXE vyšší dívčí.
Podívej se na setintflags a na settimer.
A-ha, tak teď nevím, jestli se pokoušet o zjednodušení s tím, že použiji vyšší dívčí :(

A když už jsme u toho, pro takový display v charlieplexingu se hodí lookup tabulky. Všiml jsem si, že se používá několik metod, která je jak efektivní a jak čitelná pro začátečníka?

Pro mne asi nejpřirozenější je použití lookup tabulky:

Kód: Vybrat vše

    lookup b0,(%00000001,%00000011,%00000010,%00000110,%00000100,%00010100,%00010000,%00010001),b1  ; kde je 1, tam je na výstupu log.1
    let pinsC = b1
Ale v programech co jsou na netu je skoro nikdo nepoužívá, tak jestli jsou špatně pochopitelné??

Častěji se setkávám s velkými "case", ty se mi zdají méně efektivní, ale jestli jsou čitelnější?

Kód: Vybrat vše

  select case b0
    case 0  b2=%11000000 ;znak 0
    case 1  b2=%11111001 ;znak 1
    case 2  b2=%10100100 ;znak 2
    case 3  b2=%10110000 ;znak 3
    case 4  b2=%10011001 ;znak 4
    case 5  b2=%10010010 ;znak 5
    case 6  b2=%10000010 ;znak 6
    case 7  b2=%11111000 ;znak 7
    case 8  b2=%10000000 ;znak 8
    case 9  b2=%10010000 ;znak 9  
    case 10 b2=%10001000 ;znak A
    case 11 b2=%10000011 ;znak b
    case 12 b2=%11000110 ;znak C
    case 13 b2=%10100001 ;znak d
    case 14 b2=%10000110 ;znak E
    case 15 b2=%10001110 ;znak F   
    endselect
A vůbec nejčastější je tupé psaní podmínek pod sebou, to se mi vůbec nelíbí, tak to sem ani nebudu dávat.
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
DavidO
Příspěvky: 1136
Registrován: 01 kvě 2013, 21:27

Re: Dotazy začátečníka

Příspěvek od DavidO »

Hromada tupých podmínek je obvykle proto, že začátečník nezná case a k tomu jeho program vzniká živelným přidáváním a kopírováním.
Jestli použít case nebo lookup bude záležet především na tom, jakých hodnot nabývá ta rozhodovací proměnná. Když to bude interval se všema nebo aspoň skoro hodnotama využitýma, tak bych to psal jako lookup, když různé hodnoty s mezerama mezi sebou, tak jako case.
Lookup by se při překladu přeložil přesně do tabulky a jejího oindexování tou proměnnou, case se obvykle překládá jako série podmínek (ifů) s ukončením když se najde správná hodnota, proto se doporučuje psát case tak, že nejpravděpodobnější varianta bude nejdřív (dost záleží na překladači, jak to optimalizuje nebo jestli má vůbec šanci poznat něco, co by optimalizaci pomohlo, třeba udělat ze sekvence strom). Protože ale Picaxe je interpretovaný "něco jako BASIC" a ne kompilované něco jako C, tak bych řekl, že case bude skoro jako ta sekvence ifů až na to, že když se najde odpovídající case, tak se pak už nebudou vyhodnocovat ty po něm následující až do konce selectu - ale to jen odhaduju. Možná select/case odpovídá sekvenci if else if ... else if anebo taky možná že kvůli tomu interpretování (resp. parsování textu) se to stejně prochází všechno lineárně ať už to je case nebo série if + else if nebo série ifů bez else takže to nakonec je jedno?

Že lookupy skoro nikdo nepoužívá bych řekl že je tím, že je skoro nikdo nezná - začátečník nejdřív nezná nic, pak se něco naučí a když se mu pomocí toho povede napsat co chtěl, víc se učit nebude (zejména samouk).
Nikoho plánovaně neurážím. Jestli se Vám nelíbí co píšu, tak to nečtěte. A ostatně, třeba za to nemůžu - Researchers believe that dark humor can be a significant symptom of dementia.
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 »

fulda píše:Pro mne asi nejpřirozenější je použití lookup tabulky:
Ano, takhle to radí začátečníkům v oficiálním fóru a je to (alespoň pro mne) dobře čitelné.
jrt
Uživatelský avatar
fulda
Příspěvky: 1364
Registrován: 04 led 2016, 17:18

Re: Dotazy začátečníka

Příspěvek od fulda »

OK, hodím tam lookup.
Doufám, že nenarazím na nějaké formátovací problémy, protože psát celej lookup do jedné řádky je nevzhledné.

DavidO: Jak jsem již napsal, je to lookup pro charlieplexing matici, takže mám třeba 12 řádek (0-11) a co řádka, to bajt který znamená stav třístavového registru a stav výstupních pinů.

Asi to udělám na dva lookupy, nebudu nikoho zatěžovat tím, že se to dá sloučit a udělat horní nibble jako třístav a dolní nibble jako výstup.
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
Uživatelský avatar
fulda
Příspěvky: 1364
Registrován: 04 led 2016, 17:18

Re: Dotazy začátečníka

Příspěvek od fulda »

jrt píše:Tohle už je pro PICAXE vyšší dívčí.
Podívej se na setintflags a na settimer.
A-ha, tak jsem podcenil jednu drobnost. přečetl jsem si českou verzi, ale neporovnal jsem jí s verzí anglickou. A tak se stalo, že jsem si nevšiml:
Applies To: 20X2, 28X1, 28X2, 40X1, 40X2
Takže si s 14M2 asi nepohraju.
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
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 »

Ale v české verzi je to přece napsáno též: "Platí pro PICAXE 20X2, 28X1, 28X2, 40X1, 40X2"
jrt
Uživatelský avatar
fulda
Příspěvky: 1364
Registrován: 04 led 2016, 17:18

Re: Dotazy začátečníka

Příspěvek od fulda »

a jó. ale je to nahoře a to jsem nečekal.
Musím si vymyslet jiný důvod, proč za to můžeš :)
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
Odpovědět