LED-Fading Fehler

OP #6852788
Lesenswert?

Hallo Forum,
ich rätsle gerade an einem kleinen, eigentlich total billigen Stück 
Code. Es geht darum, eine LED (später mit Leistung) sehr langsam faden 
zu lassen. Dabei wird es 3 Möglichkeiten geben (Auswahl über Schalter 
EIN-AUS-EIN):
1) je nach Befehl über I2C sehr langsam (1h) an oder aus
2) deutlich schneller (ca. 13s) ein
3) deutlich schneller (ca. 13s) aus

Variante 1 (beide Richtungen) und 2 funktionieren sehr gut, Variante 3 
dagegen nicht. In diesem Fall geht die LED einfach aus. Die beiden 
verantwortlichen Eingänge sind nicht entprellt, das schließe ich als 
Ursache aber aus, weil Variante 1 und 2 problemlos funktionieren.

Dies ist mein an der Stelle genutzter Code, wenn der Ausschnitt nicht 
reicht, gibt es mehr.
1
switch(PINB & 0x18){
2
  case 0x08:  //AUTO
3
    if(millis - lastchange >= delayms){
4
      lastchange = millis;
5
      if(config == 1){
6
        if(OCR1A < 255)
7
          ++OCR1A;
8
        else
9
          config = 0;
10
      }//end if
11
      if(config == 2){
12
        if(OCR1A > 0)
13
          --OCR1A;
14
        else
15
          config = 0;
16
      }//end if
17
    }//end if
18
    break;
19
  case 0x10:  //EIN
20
    if(millis - lastchange >= 50){
21
      lastchange = millis;
22
      if(OCR1A < 255)
23
        ++OCR1A;
24
    }//end if
25
    break;
26
  case 0x18:  //AUS
27
    if(millis - lastchange >= 50){
28
      if(OCR1A > 0)
29
        --OCR1A;
30
    }//end if
31
    break;
32
}//end switch
Das ganze läuft auf einem ATtiny25.
Ich vermute, dass die Lösung trivial ist, aber nach 2 Tagen gegrüble 
sehr ich sie einfach nicht.

Vielen Dank im Voraus!
#6853199
Lesenswert?

Martin schrieb:
> Warum verwenden so wenig Leute einen Debuger oder machen einfach ein
> paar Debugausgaben im Terminal?

Weil Sie meist noch Anfänger sind und noch wie ein Blinder durch den 
Wald stapfen.

Michael K. schrieb:
> Nach dem x-ten Mal lesen habe ich die Antwort verstanden.
> Trivial, wie ich ja schon vermutet habe.
> Vielen Dank!!!

Ja Sorry, bin "manchmal" schreibfaul.
Wenn man sowas nich sieht, heißt das meist nur "Junge mach mal Pause!". 
:)
OP #6853267
Lesenswert?

Martin schrieb:
> einfach ein paar Debugausgaben im Terminal?
welches Termin, bei einem stumpfen ATtiny?

Martin schrieb:
> Warum verwenden so wenig Leute einen Debuger
Teo D. schrieb:
> Weil Sie meist noch Anfänger sind
Ich würde mich nicht mehr als Anfänger bezeichnen, aber ich komme eher 
von der Hardware-Seite, meine Programm waren bis jetzt eher 
übersichtlich und wie der Debugger im Atmel Studio funktioniert habe ich 
noch nicht herausgefunden (und auch noch nicht ernsthaft versucht)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren