www.mikrocontroller.net

Forum: Compiler & IDEs Globale Variablen in auch "include-Dateien" verwenden


Autor: Matze Klaus (phytomed)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich möchte eine globale Variable aus dem Hauptprogramm
innerhalb von einer include Datei verwenden, d.h.
ich möchte sowohl in dem Hauptprogramm als auch in
der Include-Datei auf die Variable zugreifen.

Es handelt sich dabei um einen Zähler, der bei jedem
Uart-Aufruf incrementiert werden soll.
Der Controller wird durch den Timer2 alle 8 Sekunden
aufgeweckt, dann soll er gucken, ob der Uart verwendet
wurde und dann den Uart lesen,
ansonsten soll er sich wieder schlafen legen (power_save_mode).


Vielen dank
Matthias

Autor: Matze Klaus (phytomed)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Entschuldigt bitte,

ich hatte zuerst nichts gefunden,
dann diesen Beitrag verfasst,
und dann die Lösung doch noch ermittelt.

http://www.mikrocontroller.net/forum/read-2-305525.html#new

unter
Autor: Rufus T. Firefly (Rufus)
Datum: 16.02.2006 19:36

DANKE Trotzdem
Matthias

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was magst Du mit "in der Include-Datei auf die Variable zugreifen"?

Korrekt ist folgende Vorgehensweise:

  // main.c

  int meine_globale_variable;

  void main(void)
  {
    meine_globale_variable = 0;
  }

  // main.h
  extern int meine_globale_variable;



  // blafusel.c

  #include "main.h"

  void machwas(void)
  {
    meine_globale_variable = 1;
  }

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur als Anmerkung zum Programm:
Normalerweise solltest du den Proz mit einem UART-Interrupt aus dem
Sleep-Mode holen, nicht mit dem Timer. Sonst kann es passieren, dass am
UART schon lange Zeichen verloren gegangen sind. Ein Byte muss immer
sofort abgeholt werden, bevor das nächste kommt.

Tom

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.