-         

Ergebnis 1 bis 4 von 4

Thema: Variablenwerte in AVR Studio anzeigen

  1. #1

    Variablenwerte in AVR Studio anzeigen

    Anzeige

    Hallo zusammen!

    Bin gerade dabei von Assembler auf C umzusteigen. Hab jetzt das erste Testprogramm geschrieben und wollte mir mal im AVR Studio ansehen was passiert. Das Programm scheint soweit zu laufen. Das Anzeigen der Variablen funktioniert nicht richtig (glaub ich). Das Programm sieht folgendermaßen aus.

    #include <avr/io.h>
    int main(void)
    {
    int test = 0;
    while(1)
    {
    for(int a = 0 ; a < 30; a++)
    {
    test = test + 1;
    }
    PORTB = ~PORTB;
    }
    }

    Die beiden Variablen test und a hab ich ins Watchfenster gezogen. Genau da ist das Problem.

    Problem 1:
    Bei der Variablen Test wird ständig "Location not Valid" angezeigt. Warum?

    Problem 2:
    Die Variable a wird zu Beginn der for Schleife mit 30 initialisiert und dann bei jedem Durchlauf dekrementiert. Müsste es nicht normalerweise umgekehrt sein?

    Mach ich da was falsch oder kann man sich im AVR Studio die Variablen nicht so anzeigen lassen wie sie im C Code geschrieben sind? Falls es doch geht könnte mir vielleicht jemand sagen wie.

    AVR Studio Version : 4.11 built 401

    Danke im Vorraus für eure Hilfe.

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    50
    Beiträge
    1.195
    Du hast wahrscheinlich einen Optimierungslevel >O0 eingeschaltet. Stell' mal in den Projekteinstellungen -O0 als Optimierungslevel ein, dann sollte es eigentlich gehen.

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801

    Re: Variablenwerte in AVR Studio anzeigen

    Zitat Zitat von Michael S.
    Problem 2:
    Die Variable a wird zu Beginn der for Schleife mit 30 initialisiert und dann bei jedem Durchlauf dekrementiert. Müsste es nicht normalerweise umgekehrt sein?
    Nö, wieso? a wird nirgens verwendet und die Schleife 30 mal durchlaufen. Das ist die Semantik. Ob a im Endeffekt hochgezählt wird oder nicht, ist für den Programmablauf unerheblich, und ein Compiler kann das ändern, wenn er denkt, es ist günstiger so (Ist es auch).
    Disclaimer: none. Sue me.

  4. #4
    Du hast wahrscheinlich einen Optimierungslevel >O0 eingeschaltet. Stell' mal in den Projekteinstellungen -O0 als Optimierungslevel ein, dann sollte es eigentlich gehen.
    Danke für die Antworten. Es lag wirklich am Optimierunglevel. Hab jetzt mal auf 0 gestellt und siehe da, es funktioniert.

    MfG Michael

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •