Hallo,
ich arbeite an einem kleinen LED Dimmer Projekt. Naja, mittlerweile ist
es nicht mehr so klein. Bis heute hat alles einwandfrei funktioniert,
bis ich die Funktion für das Faden eines Wertes auf einen beliebigen
anderen in einer beliebigen Zeit von nur einer LED auf alle verfügbaren
ausgebaut habe.
Zuerst hat sich der µC nach der Initialisierung der USB Schnittstelle
resetet, bzw. ist zum Start zurück gesprungen und hat von vorne
begonnen.
Dann habe ich alle USB Teile auskommentiert. Jetzt arbeitet der µC fast
richtig. Es wird regelmaeßig durch eine Timer Overflow die Variabe next
von false auf true gesetzt. Dann soll Hauptprogramm in der
Endlosschleife durch das Freigabesignal, also next=true, durch eine
if-Bedingung der Helligkeitswert einer LED veraendert werden. Aber die
Zeile wird ignoriert, und der µC faengt am anfang der endlosschleife
wieder an.
Der Compiler arbeitet mit der optimierungsstufe s, aber auch ohne
optimierung tritt der fehler noch auf.
wodurch kann so ein Fehler hervorgerufen werden und wie kann man das
vermeiden?
ich freue mich über jede hilfreiche antwort.
delicious_cake
je nach USB Implementierung
ist es eine Software USB geschichte wird vlt die ISR irgendwo blockiert
da der AVR keine ISR Prioritäten kennt kann das auch mal in die hose
gehen ..
deine next variable ist aber hoffentlich eine
mein µC ist ein AT90USB162 und arbeitet mit dem LUFA USB Stack als USB
HID.
die Variable next ist global als bool definiert. so hat es jetzt ja
schon die ganze zeit funktioniert.
delicious_cake schrieb:> Hier ist ausschnittsweise mein code. nicht alles ist zur> veröffentlichung gedacht
Ein LED-Fader?
Ja, ist schon klar. Ist Hi-Tech
gut danke. das löst die haelfte meines problems. das andere, bei
aktivierter usb schnittstelle besteht weiterhin. ist irgendwie auch
klar.
Karl heinz Buchegger schrieb:> Ein LED-Fader?> Ja, ist schon klar. Ist Hi-Tech
immerhin können mehrere über bluetooth kommunizieren und über usb kann
mann alle bedienen. (die bluetooth pc programmierung hab ich nohc nicht
ganz raus.)