mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MCA-25 + Radig AVR-Webmodul


Autor: Andi S. (laserandi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forum,
hat schon mal jemand eine MCA-25 Kamera mit dem aktuellen AVR-Webmodul 
von U. Radig ans laufen bekommen? Der Quellcode von Wil Version 1.0.6 
sieht ja nur die Phillips Kamera vor.

Gruß
Andi

Autor: Andi S. (laserandi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich Versuche gerade die Dateien von Simon Schulz ein zu binden. Hier 
wird manchmal printf und manchmal printf_p verwendet. Kennt jemand den 
Unterschied?

Autor: Andi S. (laserandi)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Um es möglichst einfach zu machen, habe ich ein neues Programm erstellt. 
Es beinhaltet nur noch die Routinen für die Speicherkarte und die 
Kamera. Was funktioniert:
-Ich kann Daten auf die sd-Karte schreiben, wenn ich die Routinen für 
die Kamera auskommentiere.
-Die Kamera kann ich auslesen wenn ich die Daten nicht speichere.
Was nicht geht:
Sobald die
mca25_init();
 Funktion mit in der main steht, bleibt der Mega644 bei
File *picfile = f16_open("camera.jpg","a");
 hängen.
Zur Info:
-Ich benutze ein LCD zum debuggen, da die Kamera den UART des µC 
verwendet.
-Die sd-Karte hängt an einem anderen PORT als die Kamera.
-Die Konfiguration steht in der Datei config.h

Natürlich werdet Ihr nicht die ganze Hardware so testen können, aber 
vielleicht findet schon jemand einen Fehler in der main.c oder in der 
mca25.c (speziell mca25_init).
Bin für jede Hilfe dankbar.
Gruß
Andi

Autor: Andi S. (laserandi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das oben genannte Problem entsteht immer wenn in der mca25_init
    switch (state){
      case 0:
        //we have to wait for AT&F:
        if (memcmp(buf,"AT&F",4) == 0){
          mca25_send_ok();
          state = 1;
        }
        break;
steht. Wenn man das so schreibt
    switch (state){
      case 0:
        //we have to wait for AT&F:
        if (memcmp(buf,"AT&F",4) == 0){
          mca25_send_ok();
        }
        state = 1;
        break;
läuft der Rest vernünftig. Leider ist das von der Logik her nicht das 
gleiche. Aber warum ist das so ein großer Unterschied? Wird der Speicher 
anders belegt oder was?

Autor: Andi S. (laserandi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
An der mca25_init liegt es nicht. Der µC hängt sich irgendwann auf. 
Vielleicht ein Speicherproblem mit dem Stack. Ich weiß aber nicht, wie 
ich das einfach debuggen kann. Vielleicht kann mir dazu jemand einen 
Tipp geben.

(Das ist ja ein ganz schöner Monolog hier. Ließt das überhaupt noch 
jemand?)

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.