MCA-25 + Radig AVR-Webmodul

OP #1909787
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
1
mca25_init();
 Funktion mit in der main steht, bleibt der Mega644 bei
1
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
Angehängte Dateien:
OP #1912013
Lesenswert?

Das oben genannte Problem entsteht immer wenn in der mca25_init
1
    switch (state){
2
      case 0:
3
        //we have to wait for AT&F:
4
        if (memcmp(buf,"AT&F",4) == 0){
5
          mca25_send_ok();
6
          state = 1;
7
        }
8
        break;
steht. Wenn man das so schreibt
1
    switch (state){
2
      case 0:
3
        //we have to wait for AT&F:
4
        if (memcmp(buf,"AT&F",4) == 0){
5
          mca25_send_ok();
6
        }
7
        state = 1;
8
        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?
OP #1941648
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren