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] shiftin/shiftout

alkadar 23 Sty 2009 12:00 2381 0
REKLAMA
  • #1 6041363
    alkadar
    Poziom 1  
    Witam
    Zacząłem się bawić bascomem od niedawna. Jak do tej pory wszystko szło w miarę dobrze. Problem pojawił się przy użyciu SHIFTOUT/SHIFTIN. Generalnie chodzi o to, że podczas pierwszej transmisji, zaraz po resecie, dane są jakby nie pełne kolejna transmisja jest już poprawna. Po wysłaniu powiedzmy (63) odczytuję (31) tak jakby za pierwszym razem szło tylko siedem bitów.
    Oto listingi z procków.
    Nadawanie:
    $regfile = "m48def.dat"
    
    $crystal = 8000000
    
    $hwstack = 32
    $swstack = 8
    $framesize = 24
    
    Dim Test As Byte
    
    Config Pind.2 = Output
    
    Set Pind.2
    
    Test = 63
    Do
    Reset Pind.2
    Set Pind.2
    Shiftout Portd.0 , Portd.1 , Test , 1
    Incr Test
    Waitms 300
    Loop
    End

    Odbieranie:
    $regfile = "m8def.dat"
    
    $crystal = 8000000
    
    $hwstack = 32
    $swstack = 8
    $framesize = 24
    
    Config Pinc.3 = Input
    Config Pinc.2 = Output
    
    Enable Interrupts
    Enable Int0
    On Int0 Testowy
    
    Config Lcdpin = Pin , Rs = Pind.0 , E = Pind.1 , Db4 = Pind.4 , Db5 = Pind.5 , Db6 = Pind.6 , Db7 = Pind.7
    Config Lcd = 16 * 2
    Cursor Off Noblink
    
    Dim Test1 As Byte
    
    Do
    Loop
    End
    
    Testowy:
    Disable Int0
    Shiftin Pinc.3 , Pinc.2 , Test1 , 4
    Cls
    Lcd Test1
    Enable Int0
    Return

    Prosiłbym bardziej obeznanych o naprowadzenie, w jaki sposób ominąć ten problem.
  • REKLAMA
REKLAMA