Wenn ich mir allerdings die bedienung der CMU-Cam durchlese, dann kann ich die wohl eher vergessen, wenn ich nicht einmal die GB-Cam zum laufen bekomme
hab ich dir ja gesagt das die Belcihtungsdauer extrem kurz sein muss. Die dunklen streifen passen auch liegt an den Register eintellungen! Zeig doch mal wovon dun Bild gemacht hast denn wenn du von nem Blatt Papier ein Bild gemacht hast passen die einstellungen
Ich habe mit der Cam ein Bild von meinem Schreibtisch herunter auf die Erde gemacht gemacht (-> recht großer Abstand).
Werde jetzt gleich mal den Edge-Modus Probieren, und dann mal gucken ob sich etwas erkennen lässt.
Ich hab mal gelesen, dass wenn man zu langsam die Pixel ausliest, das diese dann irgendwie verfallen(fragt mich nicht wo ich das gelesen habe).
Da ich alles über den I2C-Bus mache, und immer warten muss bis dieser frei ist, weiß ich nicht wie meine Timings sind. Wenn ich die im Programm verwendeten delays abändere, ändert sich allerdings das Bild nicht
(dann könnten die Timings ja nur zu lang sein).
Werde gleich auch mal meinen µC statt mit 4Mhz mit 16 betreiben,
dies müsste ja ein wenig mehr Speed bringen...
naja das datenblatt gibt ne mindest taktrate von 0,5khz an
Die Bleichtung würd ich auf wen minimal wert setzen also das höhere der beiden register auf 0 das andere auf 1 setzen!
Probier mal die "Pixel Verstärkung zu erhöhen"
Immerhin kannst durch den schwarzen Streifen unten Fehler beim Aufbau auschließen
Ach das "einreisen" hab ich bei mir am Anfang auch für überbelichtung usw gehalten im Endeffekt waren es aber die ersten Teile des Bildes die erkennbar waren!!!
Ja, das stimmt, aber ein Bild auszulesen dauert bei mir ohne delays so ca. 15sek. Ist bei dir die Zeit auch so hoch? (Finde das ein wenig lang, wenn ich bedenke das manche angeblich unter 1fps kommen).
Und was hälste von meiner Theorie dass das auslesen einfach zu lange dauert?
Ich werde jetzt einfach mal ein bisschen rumprobieren...
wenn ichs direkt über seriell jage ohne Puffer usw. dauert es bei der höchsten Baudrate von 115kb (I"C ist ja noch schneller) max. 1-2sec bei niedriger Baudrate hatte ich aber auch keine Probleme da hast ziemlich lang gedauert, aber wie bringst du ne zeit von 15sek zam????
Die Zeit entsteht beim auslesen des Bildes.
Habe erst mit 2 for-Schleifen gearbeitet, die einfach 128x128 Pixel auslesen,
d.H 128x128 mal den PCF8591 ne Spannung auslesen lassen.
Danach habe ich ne while Schleife genommen, die solange den PCF8591 ne Spannung auslesen lassen, wie am PCF8574 der Read-Pin High ist (funktioniert auch, nach 128x128 geht er auf low).
Problem bei dieser Art ist halt nur das ich 2 unterschiedliche I2C Module ansteuern muss...
Wenn ich nun zu der For-Schleifen Methode zurückgehe und die Pixelwerte nur auslese, nicht versende ist die Cam nach ca. 2sek. fertig.
Habe das UART nur mit 9600kBaud konfiguriert, denke ich sollte das mal schneller machen, wa?
2sek da geht kein bild verloren! hab es am anfang auch so lagsam übermittelt mit 9600erbaud über RS232 direkt raus und es hat gefunzt man musste halt nur lange warten, bis das Bild übermittelt war aber es sieht dann bei mir noch genauso aus wie wenn ichs schneller sende!
ich habe es so gemacht ne while schleife bis der adc signalisert wandeln fertig, dann die vorgeshene zeit gewartet bis nächster pixel übermittelt ist , dann wieder gewartet bis adc sagt fertig!
stell doch mal deinen source rein, ich kenn mich zwar net mit C aus aber ich schaus mir mal an!"
Hier der benutzte Wichtige Code, wie gesagt die Timings sind egal.
Kann da einstellen was ich will.
Die delay_us Funktion sieht wie folgt aus:
void delay_us( unsigned short us )
{
while( us ) us--;
}
Nachtrag:
Ohne die Übertragung per UART brauch der µC fast genau so lange auch über 10 sek.
Ich glaube es liegt einfach daran, das ich 2 unterschiedliche Module per I2C Ansprechen muss, und immer wieder eine Start-Bedingung auf den Bus legen muss, und zum Schluss eine Stop-Bedingung.
Die Zeit dafür scheint einfach zu lange zu dauern, besonders weil man ja immer warten muss bis der Slave antwortet...
Lesezeichen