PICAXE vice seriovych linek

Zapletal Martin zapletal na inoma.cz
Pátek Říjen 17 10:15:22 CEST 2014


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ší informace o konferenci Hw-list