jar
30.10.2007, 17:02
ich habe eine PWM für eine LEDDimmung geproggt, aber warum geht die LED nicht ganz aus ?
ein Code Schnipsel, ich seh den Fehler im Moment nicht
#define r_max 32
uint8_t r=0;
void timer_init(void)
{ TCCR1A = (1<<WGM10);
TCCR1A |= (1<<COM1A1)|(1<<COM1B1);
TCCR1B = (1<<CS11)|(1<<CS10);
}
void rot(uint8_t rt)
{OCR1BL = rt;}
void dim_r_dn(void)
{ for(r=r_max; r>0; r--)
{ rot(r); wait_ms(warte); }
rot(0);
}
mich stört das programmtechnisch völlig unnötige "rot(0);" damit die LED aus ist, mit nur runterzählen for(r>0) r--; gehts eben nicht auf NULL bzw. geht die LED nicht aus
ein Code Schnipsel, ich seh den Fehler im Moment nicht
#define r_max 32
uint8_t r=0;
void timer_init(void)
{ TCCR1A = (1<<WGM10);
TCCR1A |= (1<<COM1A1)|(1<<COM1B1);
TCCR1B = (1<<CS11)|(1<<CS10);
}
void rot(uint8_t rt)
{OCR1BL = rt;}
void dim_r_dn(void)
{ for(r=r_max; r>0; r--)
{ rot(r); wait_ms(warte); }
rot(0);
}
mich stört das programmtechnisch völlig unnötige "rot(0);" damit die LED aus ist, mit nur runterzählen for(r>0) r--; gehts eben nicht auf NULL bzw. geht die LED nicht aus