mikrocontroller.net

Forum: Compiler & IDEs Cam MCA25 Vorschau?


Autor: Timebeast (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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:
...
case 1:
for(i=0;i<31;i++){
  data[x++]=buf[i];
};
...
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:
...
  // [F9 83 EF 11 ** ** ** ** ** ** ** ** 3F F9 ]
#if CAM_BUFFER_LEN == 256
  if ( (memcmp(buf,"\xF9\x83\xEF\x11",4) == 0) ||
       (memcmp(buf,"\xF9\x83\xEF\x1D",4) == 0) ) {
#else //CAM_BUFFER_LEN == 512
  if ( (memcmp(buf,"\xF9\x83\xEF\x21",4) == 0) ||
       (memcmp(buf,"\xF9\x83\xEF\x31",4) == 0) ) {
#endif
            
  state =0;
  soft_uart_write_data(data); //Ausgabe über Softuart
...

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.