www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wie kann ich mir Variablen anzeigen lassen?


Autor: Bastelmaus (Gast)
Datum:

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

  while(1)
  {
    z += 1234;
    if(z >= 16000)
    {
      z = 0;
      Led_gelb_toggle
    }
  }
}
//***********************************************
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?

Autor: Todi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

falls Du AVR-Studio nutzt mußt Du mit dem Zeiger über die Variable 
fahren.

Gruß

Autor: Hannes H. (mui)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oder mit "add watch" bei rechtsklick auf die variable?!

Autor: Skua (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein Toggle scheint mir aber nicht zu Togglen

Autor: Düsendieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bastelmaus schrieb:
> Ist sehr schön, aber wie kann ich mir im Step-Betrieb den Wert der
>
> variablen z und n anzeigen lassen?

Ich muss auch die Variablen global definieren.


unsigned long int z = 12345678;
volatile unsigned char n;

int main(void)
{
.
.
.

Autor: Bastelmaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Gregor B. (gregor54321)
Datum:

Bewertung
0 lesenswert
nicht 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.
#include <avr/io.h>
#define Led_gelb_toggle PORTB ^= (1 << PB4);  // XOR mit Bit 4

int main(void)
{
unsigned long int z = 12345678;

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

  while(1)
  {
    z += 1234;
    if(z >= 16000)
    {
      z = 0;
      Led_gelb_toggle
    }
  }
}

void main(void) {
  DDRB= ~(1<<PB4);  // 0b11110111 nach DDRB schreiben (PB4 als Eingang)
  while (true) {
    if (PINB && (1<<PB4) { // vergleicht (AND) 0b....1... mit 0b00001000
      TOGGLE_LED;
    }
  }
}

Autor: Bastelmaus (Gast)
Datum:

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

Nö, das mit
#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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.