-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: PWM mit PIC18F4550

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    16.01.2007
    Beiträge
    7

    PWM mit PIC18F4550

    Anzeige

    Hallo zusammen!
    Ich habe folgendes Problem mit einem PIC18F4550:
    Ich nutze den PWM- Ausgang, also den Timer3 und möchte eine PWM-
    Frequenz von 20kHz erzeugen. OSzillator ist ein 20MHz- Quarz. Es ist
    kein Vorteiler eingestellt, sodass bei der Einstellung des Registers PR2
    = 255 eigentlich die Frequenz von 20kHz erreicht werden sollte (20MHz/4
    = 5MHz; 5MHz/(255+1) = 19,53kHz) aber das gemessene PWM- Signal besitzt
    eine Frequenz, die nur ein viertel dessen beträgt, also 4,88kHz. Woran
    kann das liegen?

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2006
    Alter
    29
    Beiträge
    122
    Hi

    PICs sind so konstruiert, dass der Interne Arbeitstakt, als auch der Takt mit dem der Timer aufgefüllt wird, ein Viertel vom externen Takt beträt.
    Mehr dazu sollte im Datenblatt stehen.

    greez
    Anything that can go wrong, will go wrong. Kabel sind entweder zu lang oder zu kurz...

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    16.01.2007
    Beiträge
    7
    Das ist klar. Wie du in der Berechnung sehen kannst ist der Oszilator- Takt durch vier geteilt, was dann den Arbeitstakt des PIC darstellt. Diese 5MHz geteilt durch den Wert, der im PR2- Register des Timers steht sollte die Frequenz der PWM ergeben... ist es aber nicht. Wo könnte der Fehler liegen?

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.02.2006
    Alter
    53
    Beiträge
    114
    Es gibt noch einen Post-Scaler. Zumindest beim 18F452. Vielleicht ist der bei dir gesetzt?

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    16.01.2007
    Beiträge
    7
    Nein. Dieser wird außerdem nicht für die PWM benutzt.

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.02.2006
    Alter
    53
    Beiträge
    114
    Du schriebst:
    Ich nutze den PWM- Ausgang, also den Timer3 ...

    PWM benutzt aber Timer 2. Liegt es daran?

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    16.01.2007
    Beiträge
    7
    ja natürlich... ich benutze den Timer2, habe mich nur vertippt

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.02.2006
    Alter
    53
    Beiträge
    114
    OK.
    Kannst du mal den Code (oder den entsprechenden Ausschnitt) posten.

    Mir fällt keine einfache Lösung mehr ein.

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    16.01.2007
    Beiträge
    7
    Hier der Code um die nötigen Register zu setzen:

    CCP2CON = 0b00001100;
    T2CON = 0b00000100;
    TRISD = 0b11111110;
    TRISC = 0b11111101;
    PR2 = 0b11111111;

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.02.2006
    Alter
    53
    Beiträge
    114
    Wie setzt du das CCPR2L Register ?

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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