Forum: Compiler & IDEs AVR Studio 6 Simulation zeigt nicht alles


von Ben S. (theben)


Angehängte Dateien:

Lesenswert?

Hallo Leute,
ich wollte ein bischen mit C Code rum spielen und schauen wann was 
passiert. Wenn ich mit der Maus über eine Char Vareable blendet sich ein 
kleines Fenster auf wo ich alles über diese Verable sehen kann. Wie auf 
dem Bild zu sehen. Wenn ich jetzt das selbe mir der uint8_t Vareable 
zahl machen will klappt das nicht warum?
Wie auf dem Bild müsste jetzt bei zahl 1 stehen. Da kommt aber nichts. 
Gehe ich einen Schritt weiter Wird die Rechnung Zahl + 10 gemacht was 11 
ergibt. und aufeinmal kann ich 11 sehen. Die double Vareable wird 
pufferd wird nie angezeigt.

Muss ich noch irgenwas einstellen damit mir mehr angezeigt wird?

Hie nochmal den vollständigen Code:
1
#include <avr/io.h>
2
#include <stdlib.h>
3
4
int main(void)
5
{
6
  // Port als Ausgang definieren
7
  DDRB = 0xff;
8
  // Pullups für die Eingänge aktivieren
9
  // PC6 ist Reset, PC7 Gibs bei ATMega8 nicht
10
  PORTC = ((1 << PC0) | (1 << PC1) | (1 << PC2) | (1 << PC3) | (1 << PC4) | (1 << PC5));
11
  PORTD = ((1 << PD0) | (1 << PD1) | (1 << PD2) | (1 << PD3) | (1 << PD4) | (1 << PD5) | (1 << PD6) | (1 << PD7));
12
    
13
  // Vareablen deklarieren
14
  char pufferc[] = {"123"};
15
  char pufferc2[21];
16
  double pufferd;
17
  uint8_t zahl;
18
  
19
  while(1)
20
    {
21
    // Einfach mal zum Spaß einen Eingang abfragen - Frage ist eh wahr
22
    if (!(PIND & (1 << PD0)))
23
    {
24
      // Zahl aus String holen
25
      pufferd = atol(&pufferc[0]);
26
      // Zahl wieder in String umwandeln (neue Formatierung)
27
      dtostre(pufferd,pufferc2,20,0);
28
      // versuchen eine einzelne Zahl aus dem String zu holen
29
      zahl = (int)pufferc2[0] - 48;
30
      // Zahl einfach mal bearbeiten
31
      zahl = zahl + 10;
32
      // Zahl ausgeben damit sie vom compiler nicht weg optimiert wird
33
      PORTB = zahl;
34
    }
35
    }
36
}

von MWS (Gast)


Lesenswert?

Stell' die Optimierung auf -O0.

von Ben S. (theben)


Lesenswert?

das dachte ich mir auch schon bis jetzt habe aber nur ne anleitung dafür 
gefunden die bei mir aber nicht geht. Vielleicht weil ich Studio 6 hab.

von Ben S. (theben)


Lesenswert?

Also alles an suche was ich bis jetzt eingegeben habe bringt nichts. es 
steht überall was ich einstwllen kann aber nicht wie und wo. hat jemand 
von euch nen tip.

von Ben S. (theben)


Lesenswert?

weis keiner wie man das abschaltet?

von Ralf G. (ralg)


Lesenswert?

Es können nur die Werte dargestellt werden, denen eindeutig ein 
Speicherort zugeordnet werden kann. Wird eine Variable, z.B., nur in 
einem Register gehalten und dieses Register wird später|vorher auch noch 
für was anderes verwendet, dann wird's schwierig...
Wenn's unbedingt sein muss: Variable zum Test 'volatile' deklarieren.

von Ben S. (theben)


Lesenswert?

Suppa! das mit volatile klappt natürlich. Das is ja auch nur um mal mit 
rum zu spielen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.