MCA Ansteuerung - bitte um Hilfe

Gast #1806421
Lesenswert?
• ▲
▼
Hallo zusammen,

ich will eine MCA30 ansteuern. Bei dem Protokoll orientiere ich mich am 
Quellcode von Ulrich Radigs Webcam (mca25.c)
http://www.ulrichradig.de/home/uploads/images/avr_webcam/avr-ip-webcam_based_on1.38_290905.tgz
da die Ansteuerung gleich der MCA25 sein soll ...

Komme bis in die Funktion
mca25_configure();
Dort wird folgender Funktionsaufruf gemacht
mca25_pgm_send(MCA25_CONFIG_640x480);

Habe die Funktion unten mal abgedruckt, mein Problem ist dass ich kein 
ACK mehr bekomme wenn ich die Daten geschickt habe.

Unten steht als Kommentar, dass man nach jedem MUX Packet kurz warten 
soll.
Hmm .. was ist kurz ??
Habe also mal 1,5,10,100ms nach jedem MUX Paket gewartet ... dann alle 
Daten am Stück geschickt ... bekomme einfach keine Antwort von der 
Kamera.
Außerdem ist das warten unten im Code auch als Kommentar rausgenommen 
worden.

Vielleicht hat ja jemand auch in letzter Zeit mit der Kamera gearbeitet 
und kann mir ein Tipp zum Timing geben ...


void mca25_pgm_send(PGM_P pointer){
  unsigned char valid=0;
  char old[4];

  for(;;){
    old[3] = old[2];
    old[2] = old[1];
    old[1] = old[0];
    old[0] = pgm_read_byte(pointer++);

    //if mux packet is finished wait some time
    //cam does not like rs232 activity while starting image grab
    /*if (old[0] == 0xF9 && old[1] == 0xF9){ //wait after the first n-1 
packets
      for (int z=0; z<30000; z++){
        nop();nop();nop();nop();nop();nop();nop();nop();
      }
      for (int z=0; z<30000; z++){
        nop();nop();nop();nop();nop();nop();nop();nop();
      }
    }*/

    if ( old[3] == '%' &&
         old[2] == 'E' &&
         old[1] == 'N' &&
         old[0] == 'D' ){
      //we have read the whole packet -> exit;
      break;
    }else{
      if (valid>=3)
        uart_putchar(old[3]);
      else
        valid++;
      /*if (in == 0xF9){
        //wait some time
        int a = 0;
        while (a < 1000){a++;}
      }*/
    }
  }
}

Antwort schreiben

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.

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.