PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Gameboy Kamera rekonfigurieren



leander
07.01.2007, 13:21
Freunde der Sensortechnik!

Ich werkel seit einiger Zeit mit AVR und Gameboy Kamera herum. Kamera konfigurieren und Bilder auslesen funktioniert auch ganz passabel.
Um die Kamera aber auch bei unterschiedlichen Lichtverhältnissen einsetzen zu können würde ich sie gern im laufenden Betrieb umkonfigurieren können, sprich, zB eine andere Belichtungszeit oder eine andere Signalverstärkung einstellen.
Hat jemand soetwas schonmal bewerkstelligt? Genügt es, ein Register neu zu laden, oder muss die ganze Kamera per "Reset - alle Register schreiben - Start" komplett neu gestartet werden? Gibts andere Möglichkeiten?
Leider gibts ja zum Start-Pin kein komplementäres Stop-Pin ;-)

Dank und Gruss,
Leander

robby-fant
07.01.2007, 20:38
ich zb habe eine routine init_cam. wenn ich die werte als variable setze, kann ich die werte ändern und die routine wieder aufrufen. habe ich schon mal getestet und geht wunderbar.



Sub init_cam()
reset_cam()

Regadr = 0
Regvalue = 128
Loadreg_cam()

Regadr = 1
Regvalue = 1
Loadreg_cam()

Regadr = 2
Regvalue = 0
Loadreg_cam()

Regadr = 3
Regvalue = 35
Loadreg_cam()

Regadr = 4
Regvalue = 1
Loadreg_cam()

Regadr = 5
Regvalue = 0
Loadreg_cam()

Regadr = 6
Regvalue = 1
Loadreg_cam()

Regadr = 7
Regvalue = 1
Loadreg_cam()
End Sub

leander
07.01.2007, 22:00
Hallo,

Danke für die Antwort! Anscheinend reset'est Du die Kamera und lädst dann alle Register neu - stimmts? Für so viel Action habe ich leider keine "Zeit", mein uC hat noch einiges anderes, sehr zeitintensives, zu tun (trotzdem alles schon in Assembler geschrieben ist). Ich habe aber inzwischen herausgefunden, dass man schon in der Pause der "Austastlücke", und vermutlich auch sonst, einzelne Register neu laden kann und die Registeränderungen anscheinend wirksam sind. Da ich beim Beladen der Register aber natürlich die Clock Leitung benutzen muss laufe ich da gelegentlich in einen neuen Frame rein. Gelegentlich stürzt die Cam auch ab (uC läuft weiter, seh ich an was anderem). Naja, ich tüftel mal weiter. Notfalls muss ich wohl auch dazu übergehen die Cam in Intervallen quasi zu "rebooten" wie Du.

Grüsse,
Leander

ogni42
08.01.2007, 18:43
Ich mache stets einen Reset der Kamera und lade alle Register neu. Das Ganze kostet nicht allzuviel Zeit, sind ja nur ein paar Register.

robby-fant
09.01.2007, 21:19
...Für so viel Action habe ich leider keine "Zeit", mein uC hat noch einiges anderes, sehr zeitintensives, zu tun...

ich glaube du weisst garnicht wie schnell diese routine ist!!!!
dann hast du den falschen uC. oder du kannst nicht proggen und hast dich mit der gameboycam noch nicht richtig beschäftigt. ohne reset läuft nix.

die camera macht keine frame, wenn die untere zeile erreicht ist fängt sie einfach wieder von neuen an die bildpunkte zu setzen, immer fort...bis ultimo.

darum kannste beim schwenken auch kein bild aufnehmen, was klar ist.
solange die bildpunkte von dir abgetastet werden, so lange darf die cam nicht bewegt werden.

leander
10.01.2007, 04:43
ich glaube du weisst garnicht wie schnell diese routine ist!!!!


Mit dem Glauben ist das so eine Sache.



oder du kannst nicht proggen und hast dich mit der gameboycam noch nicht richtig beschäftigt. ohne reset läuft nix.


Bitte erspar mir Deine Vermutungen über mich.



die camera macht keine frame, wenn die untere zeile erreicht ist fängt sie einfach wieder von neuen an die bildpunkte zu setzen, immer fort...bis ultimo.


...und wenn Sie von neuem beginnt, dann beginnt auch ein neues Frame. Im Datenblatt des M64283FP spricht man jedenfalls z.B. von einer frame rate, in Anhängigkeit von der Belichtungszeit, auch sonst kommt das Wort Frame dort ein paar mal vor.

Aber zur Lösung:

Wenn ich während des Auslesens der Pixel Daten auf Sin lege, dann werden sie allem Anschein nach auch mit dem Clock in die Kamera übernommen. Dann im richtigen Moment noch das Load Pin auf High legen und die Einstellungen werden wirksam. Ob sofort oder mit dem kommenden Frame, da bin ich mir noch nicht ganz klar drüber. Vielleicht täusche ich mich ja auch, wer mag kanns ja mal ausprobieren. Mit den Registern 001, 010 und 011 scheints jedenfalls zu funktionieren.

MfG
Leander