Cam MCA25 Vorschau?

Gast #917191
Hallo Leute,
kennt sich noch jemand mit dem Projekt avr ip webcam von Simon Schulz 
(avr.auctionant.de) aus?

Ich versuche schon seit ewigen Zeiten die Cam für eine kleine Robo 
Anwendung mal ohne den ganzen Webserver Kram zum laufen zu bringen. Wo 
ich darmals allerdings schon an der Initalisierung gescheitert bin, bin 
ich heute schon nen gutes Stück weiter.

Initialisierung, läuft!
Configuration, läuft!

Auch die Funktion "mca25_start_image_grab()" läuft anstandslos durch, 
allerdings von den Previews weit und breit nichts zu sehen... :-(

Nebenbei, das Perl Programm läuft auch, hab auch die Beispieldaten die 
auf der Website sind, schon decodieren können, ich müßte also nur 
irgendwie an die Daten gelangen.

Was ich schon versucht hab:
ich erstelle mir ein Array char data[CAM_BUFFER_LEN] (512 Byte lang) und 
beschreibe diesen halt im unteren Teil der Funktion, also nach case 1:
1
...
2
case 1:
3
for(i=0;i<31;i++){
4
  data[x++]=buf[i];
5
};
6
...
Ausgeben tue ich das ganze über einen Software gelösten UART (an dem 
Hardware USART hängt ja die Cam). Dieser läuft mit 115200Baud und 
funktioniert prächtig!!
Ausgabe erfolgt nachdem das Ende der 512Byte erkannt wurden, also hier:
1
...
2
  // [F9 83 EF 11 ** ** ** ** ** ** ** ** 3F F9 ]
3
#if CAM_BUFFER_LEN == 256
4
  if ( (memcmp(buf,"\xF9\x83\xEF\x11",4) == 0) ||
5
       (memcmp(buf,"\xF9\x83\xEF\x1D",4) == 0) ) {
6
#else //CAM_BUFFER_LEN == 512
7
  if ( (memcmp(buf,"\xF9\x83\xEF\x21",4) == 0) ||
8
       (memcmp(buf,"\xF9\x83\xEF\x31",4) == 0) ) {
9
#endif
10
            
11
  state =0;
12
  soft_uart_write_data(data); //Ausgabe über Softuart
13
...

Diese ersten 512Byte sehen auch richtig gut aus, man sieht in Klartext 
sogar schon die "EBMP_1.0" und natürlich ne menge Mux Kram aussenrum 
;-).
Aber leider war´s das dann auch schon. Die Cam scheint sich aufzuhängen 
und spuckt keine weiteren Pakete mehr aus...ich denke die Übertragung 
der 512Byte über RS232 dauert einfach zu lange. Wenn ich die Übertragung 
raus nehme, läuft die Funtion ja anstandslos durch, aber wie soll man es 
anders lösen?

Ich häng hier nochmal den ganzen Code den ich bisher geschrieben habe 
mit dran.
!!!!!!GANZ WICHTIG!!!!!!
DIESER CODE IST ABSOLUTER BETA, WAS SAG ICH ALPHA STADIUM. Ich bin 
ausdrücklich NICHT daran intressiert meinen Programmierstil hier 
beurteilen zu lassen, da das ganze Projekt aus meiner Sicht erstmal nur 
ein wirklich ganz finsterer übler Hack ist, der die Grundfuntionallität 
zur Verfügung stellen soll. Es geht mir nicht um die "großen" sondern um 
die Vorschaubilder. Historisch gewachsen sind natürlich noch sämtliche 
anderen Programmteile vorhanden...

Ach so, das ganze ist in C++ unter AVR Studio 4.14 auf einem ATmega32 
mit 14,745600 Mhz Quarz entstanden.

Gruß
Ralf
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.