Stránka 13 z 14

Re: Dotazy začátečníka

Napsal: 17 srp 2018, 07:59
od DavidO
Jednak myslím, že serout na prvním a serin na druhém by měly mít stejný baudrate,
Dále, když v serout jsou #, tak se to vyšle jako řetězec, ne jako byte, jenže serin to pak přijímá do těch tří proměnných jako jednotlivé byty. Čili se mi zdá, že přijmeš do b0 první číslici z hodin, do b1 druhou, do b3 dvojtečku a vypíšeš. Pak ihned přijmeš do b0 první číslici minut, do b1 druhou a do b3 dvojtečku a vypíšeš. Pak do b0 první z minut, do b1 druhou a pak se to zasekne, dokud nepošleš další čas, kdy to do b2 přečte první číslici z hodin. A tak dál.
Myslím tedy, že by se to mělo vysílat a přijímat oboje bez # nebo oboje s # (a pak by byl nutný oddělovač mezi jednotlivými řetězci těch tří čísel) a ještě bych to pro jistotu posílal s nějakým kvalifikátorem na začátku, na který by se to sesynchronizovalo při čtení (kdyby se to nějak rozjelo) např. serout C.2, N4800,("T",hour,mins,seconds) a serin C.1, N4800, ("T"),b0,b1,b2

Re: Dotazy začátečníka

Napsal: 17 srp 2018, 10:38
od jova
Pokud "vysílám":

Kód: Vybrat vše

serout C.2, N2400,("T",hour,mins,seconds)
tak mi to

Kód: Vybrat vše

serin C.3, N2400, ("T"),b0,b1,b2
nepřijme a nic se nezobrazí.
Pokud tam ten kvalifikátor na příjmu vynechám

Kód: Vybrat vše

serin C.3, N2400,b0,b1,b2
tak to dada přijme ale opět v té třímístné nesmyslné podobě.
Stejně se to chová když vynechám kvalifikátor na "vysílání i příjmu".
Pokud dám na příjem

Kód: Vybrat vše

serin C.3, N2400,#b0,#b1,#b2
tak to nic nepřijme.

(změnil jsem port pro příjem a sjednotil frekvenci)

Re: Dotazy začátečníka

Napsal: 17 srp 2018, 11:26
od DavidO
jova píše: 17 srp 2018, 10:38 Pokud "vysílám":

Kód: Vybrat vše

serout C.2, N2400,("T",hour,mins,seconds)
tak mi to

Kód: Vybrat vše

serin C.3, N2400, ("T"),b0,b1,b2
nepřijme a nic se nezobrazí.
Hm, hm, to vypadá jako mišmaš v přenosu, nejvíc jako různé baudrate. Jestli tam je stejné N2400, tak by to ještě mohlo být různé nastavení, co si Picaxe myslí o taktovací frekvenci kontroleru. Já prakticky nevím, jak se to v Picaxe dělá, ale máš to nastavené skutečně tak, jak to fyzicky je? Zkus si třeba udělat na obou blikání 1x za vteřinu, jestli ti to nebliká rychlejc nebo pomalejc.
(nebo se na komunikaci podívej osciloskopem/dataloggerem, pokud máš. Pokud ne, kup si, stojí to za to)

Re: Dotazy začátečníka

Napsal: 17 srp 2018, 11:58
od jrt
jova píše: 16 srp 2018, 23:26 Zdravím.
Zkouším tu takovou jednoduchou komunikaci rozchodit a nějak se nedaří.
Procesor 20X2 vysílá dvoumístná časová data z RTC pinem C.2 (hod, min, sec)

Kód: Vybrat vše

setfreq m32
...
serout C.2, N4800,(#hour,#mins,#seconds)
...
V příkazu SEROUT je mimo polarity a komunikační rychlosti potřeba uvést také pro jakou taktovací frekvenci platí, tedy v tomto případě:

Kód: Vybrat vše

serout C.2, N4800_32.
Viz manuál.

Re: Dotazy začátečníka

Napsal: 17 srp 2018, 12:09
od DavidO
Tak to by lecos vysvětlovalo... A jaktože to teda Picaxe sežralo bez toho?

Re: Dotazy začátečníka

Napsal: 17 srp 2018, 13:30
od jova
Díky pánové všem, už to chodí.
1. Skutečně v tom "vysílacím procesoru" je třeba uvést tu frekvenci na které běží procesor (N4800_32). Nebylo to třeba v případě, kdy "vysílací" i "přijímací" procesor běželi na stejné frekvenci např. 4MHz.
2. "Přijímací" i "vysílací" procesor musí být samozřejmě nastavené na stejnou přenosovou rychlost.
3. Pokud má "přijímací" procesor zobrazovat i přijatá data na LCD, tak i jeho serin i serout musí běžet na stejné rychlosti.
Pro většinu z vás asi základy, pro mě věčného začátečníka další důležitý objev :) Jdu bádat dál co se tím dá všechno poslat a jak tím nahrávat data a nastavení z jednoho procesoru do druhého.
Vysílá:

Kód: Vybrat vše

setfreq m32 ...
serout C.2, N4800_32,(hour,mins,seconds);
Přijímá:

Kód: Vybrat vše

setfreq m4
Pause 500
symbol baud=N4800
do
serin C.3, baud,b0,b1,b2
serout C.4,baud,(254,192)
serout C.4,baud,(#b0,":",#b1,":",#b2)
loop
Zobrazuje: 13:38:15

Re: Dotazy začátečníka

Napsal: 17 srp 2018, 13:55
od DavidO
jova píše: 17 srp 2018, 13:30Díky pánové všem, už to chodí.
Skvěle.
jova píše: 17 srp 2018, 13:30 3. Pokud má "přijímací" procesor zobrazovat i přijatá data na LCD, tak i jeho serin i serout musí běžet na stejné rychlosti.
Fakt?¨To se mi nezdá. Proč by se to pak muselo zadávat při každém použití obou příkazů?
jova píše: 17 srp 2018, 13:30 serout C.2, N4800_32,(hour,mins,seconds);
Posílej si tam i tu zarážku, protože jinak se ti snadno může stát, že přijímač začne chtít přijímat až když už vysílač něco poslal a pak to bude pořád špatně (posunuté).

Re: Dotazy začátečníka

Napsal: 17 srp 2018, 14:45
od jrt
DavidO píše: 17 srp 2018, 12:09 Tak to by lecos vysvětlovalo... A jaktože to teda Picaxe sežralo bez toho?
Pokud se přenosová rychlost neuvede, předpokládá se, že PICAXE běží na své základní taktovací frekvenci. Je to zřejmě kvůli zpětné kompatibilitě.

Re: Dotazy začátečníka

Napsal: 17 srp 2018, 14:47
od jova
DavidO píše: 17 srp 2018, 13:55
jova píše: 17 srp 2018, 13:30 3. Pokud má "přijímací" procesor zobrazovat i přijatá data na LCD, tak jeho serin i serout musí běžet na stejné rychlosti.
Fakt?¨To se mi nezdá. Proč by se to pak muselo zadávat při každém použití obou příkazů?
Proč tomu tak je netuším. Třeba takto napsaný program už nefunguje. Nejprve zobrazí správně nápis Ahoj, a pak když načte data, tak se to celé "zboří" a ukazuje nesmysly. Možná za to může ten soft co mi řídí LCD :roll:

Kód: Vybrat vše

setfreq m8
pause 1000
symbol baud=N2400
serout C.4, baud, (254,128)
serout C.4, baud, ("Ahoj")
do
serin C.3, N4800, b0,b1,b2
serout C.4,baud,(254,192)
serout C.4,baud,(#b0,":",#b1,":",#b2)
loop
S tím "adresováním" pomocí kvalifikátoru počítám, tohle byl jen pokus.

Re: Dotazy začátečníka

Napsal: 17 srp 2018, 14:58
od DavidO
Zase ti tam chybějí ty frekvence. Ale to stejně asi nevysvětluje tuhle "záhadu".