mikrocontroller.net

Forum: Compiler & IDEs Problem mit globaler Variable


Autor: lemmi187 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Hab hier ein Problem mit obigem Quellcode. Dort ist in der Header-Datei 
eine globale Variable "ledOrange" angelegt. Die Verwendung dieser 
funktioniert im AVRStudio- Simulator, aber wenn ich das Programm mit 
Proteus (ähnlich Spice-Programmen) teste, dann funktioniert die globale 
Variable nicht mehr. Wo liegt denn da der Fehler?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lemmi187 schrieb:

> Hab hier ein Problem mit obigem Quellcode. Dort ist in der Header-Datei
> eine globale Variable "ledOrange" angelegt. Die Verwendung dieser
> funktioniert im AVRStudio- Simulator, aber wenn ich das Programm mit
> Proteus (ähnlich Spice-Programmen) teste, dann funktioniert die globale
> Variable nicht mehr.

Wie definierst du 'funktioniert nicht'?

NB: Ist das der ganze Code?
Du hast da bei den Timern jede Menge Interrupts freigegeben, für die es 
keine Handler gibt. Bei jedem Auftreten eines dieser Interrupts gibt es 
daher einen µC-Reset.

Autor: lemmi187 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Also wenn ich den animierten Taster betätige, dann wird nur "PORTB |= 
(1<<PORTB1);" ausgeführt, also die LED D1 ausgeschalten. Aber die LED D2 
sollte sich einschalten, tut sie aber nicht.
Die gechriebenen TimerInterrupts hab ich auskommentiert, ich hab nur mal 
begonnen das inti() zu schreiben. Code kommt natürlich noch mehr dazu.
Funktionieren tuts trotzdem nicht.
Hab nochmal ein Bild der Schaltung dazugehängt.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lemmi187 schrieb:

> Die gechriebenen TimerInterrupts hab ich auskommentiert,

Bei der UART hast du auch Interrupts aktiviert.

Tu dir doch mal einen Gefallen und wirf alles aus dem Programm raus, was 
nichts mit dem externen Interrupt, der globalen Variablen und den LED zu 
tun hat. Also: Minimalprogramm, wo jede Anweisung tatsächlich gebraucht 
wird und nichts überflüssig ist um die Aufgabenstellung 'Externer 
Interrupt schaltet 2 LED so wie gewünscht' zu lösen.

Autor: lemmi187 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab das jetz mal gemacht und alles funktioniert einwandfrei, danke.

mfg

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.