mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Variablendeklaration µVision3


Autor: Klawatsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich versuche mich mit µVision3 vertraut zu machen, aber ich schaffe es 
nicht eine Variable in einer *.h Datei zu deklarieren und diese in einer 
oder mehreren *.c Dateien zu verwenden. Kann mir bitte jemand helfen. 
Danke.

Autor: R. W. (quakeman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich habe es bisher immer so gemacht, dass ich eine globale 
Variable, auf welche von unterschiedlichen c Dateien zugegriffen werden 
soll, immer in einer c Datei deklariere und dann per h-file allen 
anderen bekannt mache.

Meine Variante sieht so aus:

1. C Datei (1.c)
#include <1.h>

unsigned int global_var_xyz;
...

1. Header Datei (1.h)
#ifndef EINS_H
  #define EINS_H    //H-File Bezeichner
  extern unsigned int global_var_xyz;
#endif

Nun kannst du in jeder C Datei die Header Datei 1.h per #include 
einbinden und auf die Variable "global_var_xyz" zugreifen. Vieleicht 
kannst du die Zeile "unsigned int global_var_xyz;" auch in die Header 
Datei auslagern, aber das musst du selber testen. Das #ifndef ist dafür 
da, damit die "extern" Bekanntmachung nicht bei jedem erneuten Einbinden 
der Header Datei erzeugt wird (sonst gibt es Fehlermeldungen beim 
Compilieren).
So wie ich es geschrieben habe funktioniert es bei mir zuverlässig.

Ciao,
     Rainer

Autor: B e r n d W. (smiley46)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#include "1.h"

Autor: R. W. (quakeman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
B e r n d W. schrieb:
> #include "1.h"

Ich benutze bei µVision immer <> und keine "". Hatte noch nie Probleme 
damit. :)

Autor: R. W. (quakeman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe eben mal etwas nachgelesen, was genau der Unterschied zwischen 
<> und "" ist. Und hier ist der Abschnitt in der Doku diesbezüglich:
For #include "filename.h" the Compiler searches first the current
folder and then folder of the source file. When this fails or when #include
<filename.h> is used, the paths specified in the include paths box are
searched. When this still fails, the paths specified in for the INC folder
under Project - Components, Environment, Books ... are used.

Also ich denke, das es in den meisten Fällen keinen Unterschied macht, 
was man nun verwendet. ;)

Ciao,
     Rainer

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.