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:
Odbieranie:
Prosiłbym bardziej obeznanych o naprowadzenie, w jaki sposób ominąć ten problem.
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
EndOdbieranie:
$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
ReturnProsiłbym bardziej obeznanych o naprowadzenie, w jaki sposób ominąć ten problem.