PICAXE vice seriovych linek

Hynek Sladky econf na centrum.cz
Pátek Říjen 17 10:55:32 CEST 2014


Podle popisu v manualu to vypada jasne: SERIN ceka po dobu timeoutu nebo 
dokud neprijme vsechna pozadovana data. Takze pokud behem vykonavani 
jednoho SERIN prikazu zacnou prichazet data na druhy SERIN kanal, tak ta 
se samozrejme nezachyti, resp. muze se zachytit nejaky zbytek dat, 
jakmile se ukonci jeden SERIN a spusti druhy...

Napada me jedno reseni: ve smycce kontrolovat stavy pinu pro jeden a 
druhy UART. Jakmile se na jednom vydetekuje uroven L, tak se pusti 
prislusny SERIN. Obejdou se tim timeouty a prislusny SERIN se spusti 
okamzite, jakmile se vydetekuje, ze protistrana zacla vysilat. Otazka 
ale je, zda to takto jde pouzit... (napr. zda nepotrebuje SERIN po 
spusteni nejprve uroven H)
Stejne se ale nevyhnete problemu, pokud se datove pakety budou prekryvat...

Hynek Sladky



Dne 17.10.2014 10:15, Zapletal Martin napsal(a):
> Zdravim.
> Do PICAXE18M2 bych potreboval nacpat celkem dve seriove linky. 1x 
> SERIN a 2x SEROUT. Mam to nadratovane, v principu to chodi, ale... 
> Pokud jede vse soucasne, tak data obcas prijdou, obcas ne. Pokud 
> pustim jen jednu linku, je vse OK. Da se to vubec provozovat soucasne, 
> nebo je treba dat v takoven pripade 2PICAXE? Zkousel jsem laborovat s 
> TimeOuty, ale to nic neresi. Pokud je vyhodim, tak procesor ceka, nez 
> data prijdou a nic jineho se neprovede. V simulaci chodi vse OK, v 
> procesoru to zlobi. Zkousel jsem to i na ruznych pinech! V teto 
> oblasti nejsem zadny guru mozna jsem neco nepochopil nebo neco delam 
> spatne, tak si rad vyslechnu Vase nazory.
> Jak to ma fungovat:
> Prectu data z TTL, zjistim stav pinu1 a vysledek poslu do PC. PC 
> zareaguje a odpovi. Na odpoved zareaguje PICAXE a provede select.
> Tady je fragment hlavni casti kodu:
>
> MAIN1:;cteni dat a obsluha
>  b11=""
>  b12=""
>  if pin1 = 1 then
>    b13="1" else b13="0" endif
>  SERIN [10],B.1,T9600_16,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11
>  if b11<>"" then
>    serout 
> B.3,N9600_16,("#0A",b13,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,13,10)
> endif
> SERIN [10],C.2,N9600_16,b12,b13
> if b12="S" then
>  select b13
>  case "0"
>    low B.4
>    low B.5
>    low B.6
>  case "1"
>    high B.4
>  case "2"
>    high B.4
>    high B.5
>  case "3"
>    high B.4
>    high B.5
>    high B.6
>  endselect
> endif
> goto MAIN1
>
> dik Zaplik

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20141017/23878739/attachment.html>


Další informace o konferenci Hw-list