AVR Studio 6 Simulation zeigt nicht alles

OP #3604855
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
}
Angehängte Dateien:
#3605655
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.