Forum: Compiler & IDEs Problem mit globaler Variable


von lemmi187 (Gast)


Angehängte Dateien:

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?

von Karl H. (kbuchegg)


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.

von lemmi187 (Gast)


Angehängte Dateien:

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.

von Karl H. (kbuchegg)


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.

von lemmi187 (Gast)


Lesenswert?

hab das jetz mal gemacht und alles funktioniert einwandfrei, danke.

mfg

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.