-
        

Ergebnis 1 bis 4 von 4

Thema: kleineres Problem mit PWM

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.03.2007
    Beiträge
    176

    kleineres Problem mit PWM

    Anzeige

    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

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    23.04.2007
    Ort
    stuttgart
    Beiträge
    1.127
    weil da r > 0 steht.... da is die 0 nich dabei...

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.11.2006
    Ort
    Hamburg
    Alter
    32
    Beiträge
    199
    Mir ist aber auch schon öfter aufgefallen, das die PWMs nicht ganz bis auf null regeln. Ich hab zum beispiel 2 Motoren, die ich über PWM regele, und wenn ich OCR0=0; ORC2=0; eingebe, höre ich immer ein brummen der Motoren, anders als wenn ich einfach die Ausgänge 0 setze.
    Konnte mir das auch noch nicht erklähren...

    MfG Jan
    Habe Mut, dich deines eigenen Verstandes zu bedienen.

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    23.08.2007
    Beiträge
    40
    PWM hat immer einen Fehler bei Stellwert eins, wenn es nicht der Center-Aligned-Modus ist. Einfach mal im Datenblatt nachlesen, da wird das genau beschrieben.

    HTH
    Carsten

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •