Droog
22.09.2004, 17:52
Ich programmiere im Moment ein Menü, als eine Art grafische Benutzeroberfläche für meinen Roboter um verschiedene Verhalten du aktivieren und Einstellungen zu machen. (Navigation wie im siemens-handy-menü mit Steuerkreuz)
Softwaremäßig ist der Aufbau wie eine verkettete Liste/Graph.
Jeder Menüpunkt stellt einen Listen-Knoten dar, mit 4 Nachbarn (rechts- links, oben, unten).
Gibt es keinen Nachbarn, ist die Liste abgeschlossen mit dem Null - Zeiger.
Soweit alles ganz normale Standart-Programmierung, tausend mal in C/C++ gemacht.
Problem 1:
Das mit den NULL Zeigern zum Abschluss der Listen ging überhaupt nicht.
D. h. kompiliert ohne Fehler/ Warnungen. aber bei der navigation durch die Liste und anschließenden Ausgabe auf LCD, kam alles mögliche zum Vorschein, außer der Titel welcher im Listenknoten gespeichert ist. Ich denke mal das war irgendwas aus dem Speicher.
Kann es sein, daß NULL, oder 0 bei zeigern bei nem AVR nicht funktioniert?
Kann ich mich darauf verlassen, wenn ich ANSI-C programmiere wie auf einem PC, daß auf dem controller das genauso läuft?
Problem 2:
Ich habe das Gefühl, daß beim Verlassen von Funktionen Fehler auftreten,
und der Controller "irgendwo" hinspringt, wenn die Funktionen zu "tief" verschachtelt sind?
Die Software hat im Moment ca 1500 Zeilen. Ram/Stack sollte aber glaube ich reichen, oder doch nicht??????
Hat vielleicht jemand änliche Probleme?
Ich verwende einen ATmega32 und WINAVR
Danke schon mal. Gruß Droog
Softwaremäßig ist der Aufbau wie eine verkettete Liste/Graph.
Jeder Menüpunkt stellt einen Listen-Knoten dar, mit 4 Nachbarn (rechts- links, oben, unten).
Gibt es keinen Nachbarn, ist die Liste abgeschlossen mit dem Null - Zeiger.
Soweit alles ganz normale Standart-Programmierung, tausend mal in C/C++ gemacht.
Problem 1:
Das mit den NULL Zeigern zum Abschluss der Listen ging überhaupt nicht.
D. h. kompiliert ohne Fehler/ Warnungen. aber bei der navigation durch die Liste und anschließenden Ausgabe auf LCD, kam alles mögliche zum Vorschein, außer der Titel welcher im Listenknoten gespeichert ist. Ich denke mal das war irgendwas aus dem Speicher.
Kann es sein, daß NULL, oder 0 bei zeigern bei nem AVR nicht funktioniert?
Kann ich mich darauf verlassen, wenn ich ANSI-C programmiere wie auf einem PC, daß auf dem controller das genauso läuft?
Problem 2:
Ich habe das Gefühl, daß beim Verlassen von Funktionen Fehler auftreten,
und der Controller "irgendwo" hinspringt, wenn die Funktionen zu "tief" verschachtelt sind?
Die Software hat im Moment ca 1500 Zeilen. Ram/Stack sollte aber glaube ich reichen, oder doch nicht??????
Hat vielleicht jemand änliche Probleme?
Ich verwende einen ATmega32 und WINAVR
Danke schon mal. Gruß Droog