Wie kann ich mir Variablen anzeigen lassen?

Gast #1951847
Lesenswert?

Hallo,
ich benutze AVR Studio4 und habe ein kleines C Programm geschrieben.
1
#include <avr/io.h>
2
#define Led_gelb_toggle PINB = (1 << PIN4);
3
//***********************************************
4
// don't expect this to make any sense :-)
5
//***********************************************
6
int main(void)
7
{
8
unsigned long int z = 12345678;
9
volatile unsigned char n;
10
n = sizeof(z);
11
DDRB = 16;  // PB4 als Output der  Led_gelb
12

13
  while(1)
14
  {
15
    z += 1234;
16
    if(z >= 16000)
17
    {
18
      z = 0;
19
      Led_gelb_toggle
20
    }
21
  }
22
}
23
//***********************************************
Ich mache:
Programm compilieren
und dann im Menüpunkt "Debug" im Simulator das Programm simuliert
starten.

Ist sehr schön, aber wie kann ich mir im Step-Betrieb den Wert der 
variablen z und n anzeigen lassen?
Gast #1951977
Lesenswert?

Vielen Dank an Todi (Gast) und Hannes H. (mui)

Hat mir sehr geholfen.
Warum bin ich da nicht selber drauf gekommen, bzw.
wo steht sowas geschrieben.
Ich wage gar nicht dran zu denken, was sich da noch alles verborgen 
hält, von dem ich überhaupt keine Ahnung habe...
#1952010
Lesenswert?

Mit PINn kannst du nur abfragen. Gesetzt wird der Pin mit "PORTn = xyz"

die Variablen musst Du in diesem Beispiel gar nicht global deklarieren. 
Nur wenn die in anderen Funktionen genutzt werden / sichtbar sein 
sollen.
1
#include <avr/io.h>
2
#define Led_gelb_toggle PORTB ^= (1 << PB4);  // XOR mit Bit 4
3

4
int main(void)
5
{
6
unsigned long int z = 12345678;
7

8
DDRB = (1<<PB4);  // PB4 als Output der  Led_gelb
9
                  // (1<<PB4) schiebt die "1" um "PB4"-Stellen nach links
10

11
  while(1)
12
  {
13
    z += 1234;
14
    if(z >= 16000)
15
    {
16
      z = 0;
17
      Led_gelb_toggle
18
    }
19
  }
20
}

1
void main(void) {
2
  DDRB= ~(1<<PB4);  // 0b11110111 nach DDRB schreiben (PB4 als Eingang)
3
  while (true) {
4
    if (PINB && (1<<PB4) { // vergleicht (AND) 0b....1... mit 0b00001000
5
      TOGGLE_LED;
6
    }
7
  }
8
}
Gast #1952044
Lesenswert?

Gregor B. schrieb:
> Mit PINn kannst du nur abfragen. Gesetzt wird der Pin mit "PORTn = xyz"

Nö, das mit
1
#define Led_gelb_toggle PINB = (1 << PIN4);
funktioniert wirklich beim ATtiny25. Ist äh war bis jetzt eben ;-)
ein Geheimtip   ;-)

Aber das soll auch nicht das Thema dieses Thread's werden, sondern wie 
man AVR's mit AVR-Studio4 besser simulieren kann...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren