TimeoutError seri iletişim hatası

Başlatan eozkantar, 26 Aralık 2017, 14:03:00

eozkantar

arkadaşlar selam
16f628 ile yaptığım seri ilet,şm uygulamasında   şöyle bir sorun yaşıyorum  yardımcı olursanız sevinirim

başla:
   SerIn DATAIN ,813, 1000, TimeoutError, [Wait("ECE"),RAKAM]

     if  rakam = 10 then
           porta.1=1
      else
          porta.1=0
    endif

   if  rakam = 20 then
           porta.2=1
      else
          porta.2=0
    endif


TimeoutError:
        Toggle  LED
        DelayMS 500

goto başla
end


şeklinde sadeleştirdim
sorun  1 saniye data gelmezse TimeoutError a gitmesi gerekirken
             SerIn DATAIN ,813,  [Wait("ECE"),RAKAM]  bu şrkilde yazılmış gibi
sürekli Serin komutunda bekliyor ECE datası gelince devam ediyor.....
TimeoutError  a neden gitmez tşk....

OG

#1
Bu eski bir problem, problemi düzeltmediler ise
öncelikle illa ki "ECE" yi bekler, timeout çalışmaz.

şöyle bir mantık ile kurtulabilirsin,

basla:

SerIn DATAIN ,813, 1000, TimeoutError, [RAKAM]
if RAKAM <> "E" then basla

SerIn DATAIN ,813, 1000, TimeoutError, [RAKAM]
if RAKAM <> "C" then basla

SerIn DATAIN ,813, 1000, TimeoutError, [RAKAM]
if RAKAM <> "E" then basla

'' "ECE" geldi, sonrası normal akış


Ayrıca,
SerIn  komutu çok kod üretir
SerIn tekrarlanan yerleri  alttaki mantık ile yapabilirsin

- - -

Dim hata as bit
Dim bekle_sure as word

bakalim_ne_var:
bekle_sure = 1000   'kendinize uygun süre ms olarak
gosub data_al
if hata = 1 then bakalim_ne_var 'süre içinde gelmemiş, ne yapacak ise onu yap
'' şimdi data geldi

if RAKAM <> "E" then falan_filan  '' "E" gelmediyse ...
'' "E" geldi

bekle_sure = 5   'kendinize uygun süre ms olarak
gosub data_al
if hata = 1 then bakalim_ne_var 'süre içinde gelmemiş, ne yapacak ise onu yap
'' şimdi data geldi

if RAKAM <> "C" then fisman_falan  '' "C" gelmediyse ...

gibi



END
'''''''''



data_al:
hata = 0
if bekle_sure = 0 then bekle_sure = 1
SerIn DATAIN ,813, bekle_sure, gelmedi, [RAKAM]
return

gelmedi:
hata = 1
return
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

eozkantar

yardımlarınız  için teşekkürler
çalıştırdım....