- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 4 von 4 ErsteErste ... 234
Ergebnis 31 bis 35 von 35

Thema: PWM

  1. #31
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    Anzeige

    Praxistest und DIY Projekte
    Code:
    while (1);  // endlos
    Das Programm kommt überhaupt nicht bis zu dem Teil, wo OCR0 verändert wird.
    MfG
    Stefan

  2. #32
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    37
    Beiträge
    5.089
    @sternst
    Du hast recht. Das habe ich ganz übersehen.

    MfG Hannes

  3. #33
    Benutzer Stammmitglied
    Registriert seit
    10.09.2010
    Beiträge
    74
    Das Programm ist ursprünglich aus dem Buch ich habe es so abgeändert, dass halt in der while Schleife was steht. Im Original steht nichts in der while Schleife.

    Das ist mir irgendwo auch bewusst, dass es nie bis zum ändern von OCR0 kommt, aber leider verstehe ich das nicht. Ich hab nämlich im Internet gesucht, wo LEDs ebenfalls über timer und PWM gedimmt werden, aber nie was für mich passendes gefunden. Was müsste ich denn abändern, oder besser gesagt, wie müsste es sein, dass die LED langsam ein geht.

    Vielen Dank nochmals.
    MFG
    RP6fahrer

  4. #34
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    37
    Beiträge
    5.089
    Die while Schleife passt im Prinzip so. Du hast aber einen kleinen Fehler drinnen, der aber eine große Auswirkung hat. Das Semikolon muss entfernt werden. Ein gutes Tutorial für C ist das von Mikrocontroller.net => http://www.mikrocontroller.net/artic...R-GCC-Tutorial

    Wenn du nur ein Kommando hast musst du ein Semikolon verwenden (z.B. DDRB |= (1<<PB1);). Ansonsten musst du mit den geschwungenen Klammern arbeiten. Da bei deinem While(1) ein Semikolon war, ist immer nur das While (1); ausgeführt worden (abgesehen von den ISR Routinen). Da zwischen while(1) und dem Semikolon nichts ist wird auch nichts ausgeführt. Würdest du z.B. while(1) PORTB ^= (1<<PB1); schreiben würdest du den PB1 immer toggeln (so schnell der µC arbeiten kann). Wenn keine ISR aktiv wäre würde der µC nur den Ausgang toggeln.

    MfG Hannes

  5. #35
    Benutzer Stammmitglied
    Registriert seit
    10.09.2010
    Beiträge
    74
    Vielen vielen Dank,
    Ich hab das Semikolon hinter while(1) weggenommen und schon ging's. Ich hätte nicht gedacht, das es nur wegen so einem kleinen Fehler nicht geht. Also nochmals vielen Dank.

    Mfg
    RP6fahrer

Seite 4 von 4 ErsteErste ... 234

Berechtigungen

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

Labornetzteil AliExpress