Pages: [1]   Go Down
Author Topic: Unerklärbarer Programmfehler  (Read 556 times)
0 Members and 1 Guest are viewing this topic.
Austria
Offline Offline
Full Member
***
Karma: 2
Posts: 107
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hier die Funktion welche die Probleme verursacht
Code:
void instruction(){
  // Anleitung anzeigen
  // \t...Zeile enrücken
  // \"..."
  // \n...Zeilenumbruch

  Serial.println("Anleitung:");
  Serial.println("\t\"R\"...\tNeustart");
  Serial.println("\t\"P\"...\tPause");
  Serial.println("\t\" \"...\tFortsetzen");
  Serial.println("\t\"?\"...\tRegeln");
  Serial.println("\t\"N\"...\tAutomatischer Neustart wenn sich das Muster nicht mehr bewegt\n\t\toder alle Zellen gestorben sind");
  Serial.println("\t\"M\"...\tAutomatischer Neustart wenn sich das Muster wiederholt,\n\t\taktiviert auch die Neustartfunktion fuer sich nicht bewegende Muster");
  
  //Serial.println("\t\"+\"...\tZeit zwischen Generationen erhoehen");
  //Serial.println("\t\"-\"...\tZeit zwischen Generationen erniedrigen");
  //Serial.println("\t\"T\"...\tZeit zwischen Generationen zuruecksetzen");
  
Serial.println("\n\t\toder eine beliebige andere Taste um diese Anleitung wieder anzuzeigen.\n");
}

So funktioniert das Programm so wie es sollte, aber nur wenn ich die drei Zeilen auskommentiert lasse.
Wenn ich sie nicht auskommentiert lasse, lässt sich der Sketch noch kompilieren und auf meinen Arduino UNO uploaden, aber wenn ich dann irgendetwas über die Serielle Schnittstelle sende, "hängt" das Programm.
Meine Interrupt-Funktion läuft aber noch.

Ich habe keine Ahnung warum dieser Fehler auftritt, bei diesen drei Zeilen handelt es sich ja nur um einfache Befehle.

Habt ihr eine Idee warum das so ist?
falls Ihr den Rest des Code's oder sonst irgendwelche Informationen über mein Projekt braucht, einfach melden

MfG
J3RE
« Last Edit: January 12, 2013, 12:11:24 pm by J3RE » Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 261
Posts: 21576
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Meine Idee ist es, daß Du zuviel RAM verbrauchst.
lösung isehe: http://arduino.cc/forum/index.php/topic,127552.msg965539.html#msg965539
Grüße Uwe
Logged

Austria
Offline Offline
Full Member
***
Karma: 2
Posts: 107
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Meine Idee ist es, daß Du zuviel RAM verbrauchst.
lösung isehe: http://arduino.cc/forum/index.php/topic,127552.msg965539.html#msg965539
Grüße Uwe
Vielen Dank smiley
Probier ich gleich mal aus.

Sollte ich alle Texte im Flash Memory speichern?
Sind bei meinem Projekt einige Zeilen Text.
Der ganze Sketch hat kompiliert 7.638 Bytes.
Logged

Austria
Offline Offline
Full Member
***
Karma: 2
Posts: 107
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Jetzt funktionierts smiley-grin

Hab jetzt alle Serial.print-Befehle in der Form geschrieben
Code:
Serial.println(F("\"Conway's Game of Life\" von John Horton Conway\n"));
Somit werden die Texte im Flash Memory gespeichert oder!?

Doch woher weiß ich wann der RAM-Speicher voll ist, oder mein Sketch zuviel RAM braucht?
Logged

Germany
Offline Offline
Faraday Member
**
Karma: 57
Posts: 3033
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Doch woher weiß ich wann der RAM-Speicher voll ist, oder mein Sketch zuviel RAM braucht?

Gute Frage. RAM wird auch für den Stack gebraucht, d.h für lokale Variable von Funktionen und für deren Rücksprungadresse ( weswegen alles schief läuft, wenn die kaputt ist. )

Such mal im Playground nach freemem und ähnlichem freeRam. Solange du noch genug RAM hast, kannst du dir anzeigen lassen, wieviel Luft ist...

[Edit: Danke J3RE, dein Link (im nächsten Post) ist genau richtig. ich meinte freeRam, nicht freemem, sorry]
« Last Edit: January 13, 2013, 01:15:41 pm by michael_x » Logged

Austria
Offline Offline
Full Member
***
Karma: 2
Posts: 107
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Such mal im Playground nach freemem und ähnlichem. Solange du noch genug RAM hast, kannst du dir anzeigen lassen, wieviel Luft ist...
Vielen Dank

hier ist das alles ganz gut erklärt
http://playground.arduino.cc/Code/AvailableMemory

« Last Edit: January 13, 2013, 04:57:54 pm by J3RE » Logged

Pages: [1]   Go Up
Jump to: