Ich versuche gerade eine GB-Cam mit einer C-Control auszulesen. Dies sollte teoretisch kein Problem sein da die Cam keinen wirklichen mindesttakt hat. Jedoch scheitere ich schon am read signal. Das signal geht sechs täkte nach reset wieder auf HI.

Das CCBasic Programm:
Code:
define start port[16]
define sin port[15]
define load port[14]
define rst port[13]
define xck port[12]
define reade port[11]
define pixel ad[1]

define addr byte
define wert byte

define x byte

#reset
rst = 0
xck = 0
rst = 0
xck = 1
rst = 1
xck = 0

#Register
addr = 0
wert = 0 
gosub reg_write
addr = 1
wert = 0
gosub reg_write
addr = 2
wert = 15
gosub reg_write
addr = 3
wert = 0
gosub reg_write
addr = 4
wert = 0
gosub reg_write
addr = 5
wert = 0
gosub reg_write
addr = 6
wert = 7
gosub reg_write
addr = 7
wert = 0
gosub reg_write
goto start

#reg_write
'send addr'
sin = &H30 - ((addr AND &H04)<>0)
xck = 1
xck = 0
sin = &H30 - ((addr AND &H02)<>0)
xck = 1
xck = 0
sin = &H30 - ((addr AND &H01)<>0)
xck = 1
xck = 0
'send wert'
sin = &H30 - ((wert AND &H80)<>0)
xck = 1
xck = 0
sin = &H30 - ((wert AND &H40)<>0)
xck = 1
xck = 0
sin = &H30 - ((wert AND &H20)<>0)
xck = 1
xck = 0
sin = &H30 - ((wert AND &H10)<>0)
xck = 1
xck = 0
sin = &H30 - ((wert AND &H08)<>0)
xck = 1
xck = 0
sin = &H30 - ((wert AND &H04)<>0)
xck = 1
xck = 0
sin = &H30 - ((wert AND &H02)<>0)
xck = 1
xck = 0
sin = &H30 - ((wert AND &H01)<>0)
xck = 1
load = 1
xck = 0
load = 0
return

#start
start = 1
xck = 1
start = 0
xck = 0

#wait
xck = 1
if reade = -1 then goto scan
xck = 0
goto wait

#scan
xck = 1
print pixel
xck = 0
if reade = 0 then end
goto scan
Das Problehm
Code:
define start port[16]
define sin port[15]
define load port[14]
define rst port[13]
define xck port[12]
define reade port[11]
define pixel ad[1]

define addr byte
define wert byte

define x byte

#reset
rst = 0
xck = 0
rst = 0
xck = 1
rst = 1
xck = 0         'read geht low wenn er nicht von anfang an low war'

pause 100       'pause um zu messen

xck = 1
xck = 0
xck = 1
xck = 0
xck = 1         'read geht HI'
xck = 0

pause 1000      'noch eine pause um zu messen