hallo
wäre es zu viel verlangt, den geänderten code mal zu posten?
habe hier auch eine cam zu liegen und würde die gerne mal probieren.
danke
gruß thomas
Hallo,
Ich versuche zurzeit ne Gameboykamera zum Laufen zu bringen, dass will aber nicht so richtig klappen. Alle 16384 (128*12 werden korrekt ausgelesen, und der READ pin geht dann auch wieder auf Low, nur komme ich mit den Kammeraeinstellungen nicht klar.
Mit dem Bild scheine ich die selben Probleme wie hier zu haben
https://www.roboternetz.de/phpBB2/ze...amera&start=22
nur wie die das dann geschafft haben ihr Bild brauchbar zu machen steht da nicht
Ich nutze folgenden Code
Code:$regfile = "m48def.dat" $crystal = 16000000 $baud = 9600 $hwstack = 54 $framesize = 54 $swstack = 74 Declare Sub Highb(byval Axa As Byte) Declare Sub Lowb(byval Axa As Byte) Declare Sub Toggleb(byval Axa As Byte) Config Portb.1 = Input Config Portc = Output Config Portd = Output Config Portc.5 = Input Config Portc.4 = Input Config Portc.3 = Input Config Portc.1 = Input Config Portb.1 = Input Config Portb.0 = Output Dim A As Byte Dim B As Integer Dim C As Byte Dim D As Byte Dim I As Integer Dim S As String * 10 Dim S2 As String * 10 Dim S3 As String * 10 Dim Startb As Byte Dim Sinb As Byte Dim Loadb As Byte Dim Resetb As Byte Dim Xck As Byte Dim Timeb As Word Dim V As Word Dim Daten(8) As String * 8 Dim Daten2(8) As String * 8 Config Portb.1 = Output 'start Config Portb.2 = Output 'sin Config Portb.3 = Output 'load Config Portb.4 = Output 'reset Config Portb.5 = Output 'xck Config Portc.2 = Input 'read Config Portc.3 = Input 'Vout (Adc3) Portc.2 = 1 Portc.3 = 1 Startb = 1 Sinb = 2 Loadb = 3 Resetb = 4 Xck = 5 Timeb = 10 Daten2(1) = "000" Daten2(2) = "001" Daten2(3) = "010" Daten2(4) = "011" Daten2(5) = "100" Daten2(6) = "101" Daten2(7) = "110" Daten2(8) = "111" A = 128 Daten(1) = Bin(a) A = 12 Daten(2) = Bin(a) A = 0 Daten(3) = Bin(a) A = 5 Daten(4) = Bin(a) A = 1 Daten(5) = Bin(a) A = 0 Daten(6) = Bin(a) A = 1 Daten(7) = Bin(a) A = 1 Daten(8) = Bin(a) Print Daten(1) Print Daten(8) Portb = 0 Waitms 1500 Start Adc 'Reset ---------------------------- Highb Resetb Waitus Timeb Lowb Resetb Waitus Timeb Highb Xck Waitus Timeb Highb Resetb Waitus Timeb Lowb Xck 'Parameter laden ------------------- For I = 1 to 8 Lowb Xck S = Daten(i) S2 = Daten2(i) For A = 1 To 3 If Mid(s2 , A , 1) = "1" Then Highb Sinb Else Lowb Sinb End If Waitus Timeb Highb Xck Waitus Timeb Lowb Xck Next A For A = 1 To 8 If Mid(s , A , 1) = "1" Then Highb Sinb Else Lowb Sinb End If Waitus Timeb Highb Xck Waitus Timeb If A <> 8 Then Lowb Xck Next A Highb Loadb Waitus Timeb Lowb Xck Waitus Timeb Lowb Loadb Next I Highb Startb Waitus Timeb Highb Xck Waitus Timeb Lowb Startb Waitus Timeb Lowb Xck 'Print "Warten..." 'Wait 1 Print Pinc.2 ' Auslesen der Werte ------------ Do Toggleb Xck Waitus Timeb Loop Until Pinc.2 = 1 'Do Print "Read ist h" ' Wait 1 'Loop Highb Xck I = 0 A = 0 Do I = I + 1 A = A + 1 V = Getadc(3) Lowb Xck Waitus Timeb Highb Xck Waitus Timeb If A = 1 Then S = Str(v) S = "000" + S S = Right(s , 4) Print S A = 0 End If Loop Until Pinc.2 = 0 'I = 0 'Do 'I = I + 1 'If I = 128 Then I = 1 ' Print I ' Waitms 2500 ' S = Str(daten3(i)) ' S = "000" + S ' S = Right(s , 4) ' Print S 'Print 'Loop Do Loop Sub Highb(axa As Byte) Portb.axa = 1 End Sub Sub Lowb(axa As Byte) Portb.axa = 0 End Sub Sub Toggleb(axa As Byte) Toggle Portb.axa End Sub
Edit: Hat sich erledigt, scheint jetzt besser zu gehen
hallo
wäre es zu viel verlangt, den geänderten code mal zu posten?
habe hier auch eine cam zu liegen und würde die gerne mal probieren.
danke
gruß thomas
Scheint an der Hardware oder irgendwelchen Verbindungen gelegen zu haben, jetzt gehts
hi
habe dein Code mal getestet bei mir kommt immer nur 1023 raus.
An was kann das liegen?
PS:
Verwende einen Mega32 @ 14,7456Mhz
Hab daher die Anschlüsse geändert aber nur die vom ADC von PortC auf PortA
Hi,
wie hast du die Kamera angeschlossen?
Hab zwei rumliegen, hatte aber noch keine Zeit
mit damit zu beschäftigen. Vieleicht kannst du was zur Hardware
Posten?
Ich hab auch mal in Code erstellt nur leider Funktioniert der nicht so wie ich will
Der READ Pin geht zwar auf High aber nicht wieder zurück? An was kann das liegen?Code:$regfile = "m32def.dat" $framesize = 32 $swstack = 32 $hwstack = 32 $crystal = 14745600 $baud = 9600 Config Portb.1 = Output 'start Config Portb.2 = Output 'sin Config Portb.3 = Output 'load Config Portb.4 = Output 'reset Config Portb.5 = Output 'xck Config Porta.2 = Input 'read Config Porta.3 = Input 'Vout (Adc3) _start Alias Portb.1 _sin Alias Portb.2 _load Alias Portb.3 _reset Alias Portb.4 _takt Alias Portb.5 _read Alias Porta.2 _vout Alias Porta.3 _takt = 0 _reset = 1 _start = 0 _load = 0 _read = 1 _vout = 1 '########## Variablen ############### Dim A As Byte , B As Byte , I As Byte , C As Byte Dim Start_register As Byte Dim Register_address(8) As Byte Dim Register_value(8) As Byte Register_address(1) = &B000 Register_address(2) = &B001 Register_address(3) = &B010 Register_address(4) = &B011 Register_address(5) = &B100 Register_address(6) = &B101 Register_address(7) = &B110 Register_address(8) = &B111 Register_value(1) = &B10000000 Register_value(2) = &B00001110 Register_value(3) = &B00000110 Register_value(4) = &B00000000 Register_value(5) = &B00000001 Register_value(6) = &B00000000 Register_value(7) = &B00000000 Register_value(8) = &B00000111 Start_register = 1 Start Adc Wait 1 '########## RESET durchführen ######## _reset = 0 Waitus 1 _takt = 1 Waitus 1 _reset = 1 Waitus 1 _takt = 0 Waitus 1 '######### Register laden ############ For I = 1 To 8 For A = 2 To 0 Step -1 _sin = Register_address(i).a Waitus 1 _takt = 1 Waitus 1 _takt = 0 Next A For B = 7 To 0 Step -1 _sin = Register_value(i).b Waitus 1 _takt = 1 Waitus 1 If B = 0 Then _load = 1 Waitus 1 _takt = 0 Next B Waitus 1 _load = 0 Next I _sin = 0 Waitus 1 '######### starten des bildes ########## _start = 1 _takt = 1 Waitus 1 _takt = 0 _start = 0 Do _takt = 1 Waitus 1 _takt = 0 Waitus 1 Loop Until _read = 1 Print "Bild kommt" Do _takt = 1 Waitus 1 _takt = 0 Waitus 1 'C = Getadc(3) 'Print C Loop Until _read = 0 Do Print "Bild zuende" Loop End
//EDIT
Hab es jetzt endlich hinbekommen es lag an der _read Belegung. Habe _read als PORTA.2 definiert stat PINA.2.
leider gekomme ich immer nur 255 raus. Kann das am langsamen ADC liegen?. Habe die Register schon mal geändert ohne erfolg.
//EDIT 2
Hab es jetzt hin gekommen. Ich habe bei der ADC Config noch Reference = Avcc hinzugefügt und ein wenig mit den Registern gespielt.
Hab hier vielleicht eine Idee wie ich das ganze leicht am PC als Bild ausgeben kann??
schau irgendwo hier im forum. da gab es ein fertiges programm für den pc.
Lesezeichen