logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Bascom] Funkcja PRINT decyduje o tym czy komunikacja się odbywa? przykład...

fjohny 06 Lip 2011 10:07 1257 2
REKLAMA
  • #1 9687754
    fjohny
    Poziom 10  
    Witam,
    pracuję nad komunikacją pomiędzy uC a Pc za pośrednictwem Bluetooth.

    Jestem pewien, że komunikacja odbywa się poprawnie (prędkości, porty) natomiast mam kłopot ze zrozumieniem tego co się dzieje na obiekcie.

    Otóż, w zależności od tego czy w pętli programu wywołam funkcję PRINT zależy, czy moja komunikacja działa czy nie.
    Jeśli w programie ukryję linijkę
    'Print "bez tej linijkni nie dziala" ; B
    to zarówno na LCD jak i w hyperterminalu nie zostanie wyświetlony żaden znak z klawiatury PCta, jeśli zaś linijka ta istnieje, wówczas wszystko działa poprawnie - Hyperterminal widzi poprawnie wciskane klawisze.

    Dlaczego tak się dzieje? czy jest na to wytłumaczenie?

    Dodam tylko, że na module BT przy uC dioda sygnalizuje odbierane dane więc po prostu procesor ich nie przyjmuje i nie odpowiada..

    
    $regfile = "m16def.dat"
    $crystal = 4000000
    
    
    Config Lcd = 16 * 2                                         'LCD 16 znaków x 2 linie
    Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.2 , E = Portb.6 , Rs = Portb.7
    Cursor Off
    
       '-------------------
    Dim B As Byte
    Dim A As Byte
    
    Do
    
    A = Inkey()
    If A > 0 Then
    Upperline
    Lcd Chr(a)
    Print " poszlo" ; Chr(a)
    End If
    
    'Print "bez tej linijkni nie dziala" ; B
    
    B = B + 1
    Upperline
    Lcd B ; " ";
    Lowerline
    Lcd A
    Waitms 100
    Loop
    
    End
    
    
  • REKLAMA
  • #2 9691353
    y0yster
    Poziom 19  
    Może w Bascomie jest jakiś swoistego rodzaju bufor. W momencie kiedy dajesz Print wywoływane jest coś w rodzaju Flush'a.

    Sam obsługiwałem moduł bluetooth podczepiony pod Atmegę i wszystko działało jak należy. Tylko z tą różnicą, że program był pisany w C.
  • #3 9692866
    Fredy
    Poziom 27  
    Może chodzi o opóźnienie jaki daję print ?
    Zastąp printa jakimś waitms 100 i zobaczy czy pomoże.
REKLAMA