C AVR Studio + JTAGICE3: Variablen im Struct bei Debugging anzeigen

Ageraluon

Neues Mitglied
25. Sep. 2014
1
0
0
Sprachen
Hallo miteinander,

Ich bin neu bei euch und muss mich gleich mit einer Frage an euch wenden, die mir derzeit ziemlich auf den Nägeln brennt.

Ich versuche, ein komplexeres Programm für einen ATMega im AVR Studio in c++ zu schreiben. Leider erzählt mir mein JTAGICE3 beim Debuggen nicht, welche Variablenwerte ein Teil meines Programms enthält.

Zum Vorgehen: Ich habe ein enum deklariert, in dem der Status eines Dialogs gespeichert wird:

[CCODE] enum Dialog_state_enum //Sets the dialog that is currently displayed
{
_NO_DIALOG,
_MAINMENU,
_GET_TIME_YEAR,
_GET_TIME_MONTHDAY,
_GET_TIME_HOURMIN,
_SELECT_CONTROLMODE,
_GET_HEATING_DAY,
_GET_HEATING_TIME,
_DIALOG_ABORT
};[/CCODE]

Dieses enum verwende ich in einem globalen Struct namens settings, welches alle Einstellungen speichert:

[CCODE] struct
{
...
volatile Dialog_state_enum dialog_state=_DIALOG_ABORT; //Internal variable that sets the dialog that is currently displayed
...
} settings;
[/CCODE]

Im Hauptprogramm in einer anderen Datei weise ich dann schließlich der Variablen die Zustände zu:

[CCODE] ...
settings.dialog_state=_GET_HEATING_TIME;
break;[/CCODE]

Wenn ich nun den Debug-Modus starte und auf dem break-Statement einen Breakpoint setze, wird mir im Watch-Fenster immer der Wert 0 angezeigt, unabhängig davon, welcher Wert tatsächlich im Controller gesetzt ist.

Wisst ihr was ich da falsch mache?

Ein Versuch von mir war, die "neuen" "Strongly typed enumerations" aus c++11-Formate zu nutzen:

[CCODE] enum class Dialog_state_enum //Sets the dialog that is currently displayed
{
_NO_DIALOG,
_MAINMENU,
_GET_TIME_YEAR,
_GET_TIME_MONTHDAY,
_GET_TIME_HOURMIN,
_SELECT_CONTROLMODE,
_GET_HEATING_DAY,
_GET_HEATING_TIME,
_DIALOG_ABORT
};[/CCODE]

[CCODE]
struct
{
...
volatile Dialog_state_enum dialog_state=Dialog_state_enum:_DIALOG_ABORT; //Internal variable that sets the dialog that is currently displayed
...
}settings;
[/CCODE]

Im Hauptprogramm:

[CCODE]settings.dialog_state=Dialog_state_enum::_GET_HEATING_TIME;[/CCODE]

Das Kompilieren lieferte hier aber den Fehler: "Expected a class or namespace" ...
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)