ForHosting KIT · Entwickler-Tools

PWM-Auflösung in Bit berechnen

Dieser Rechner zeigt, wie viele Timer-Schritte und vollständige Bits bei einer gewünschten PWM-Frequenz verfügbar sind.

● BetaKostenlos · im Browser
Nutzen Sie es über WebAPIE-MailTelegramApp bald

Geben Sie den Timer-Takt in Hertz, die gewünschte PWM-Frequenz und optional einen ganzzahligen Vorteiler ein. Das Ergebnis enthält Tickfrequenz, ideale und nutzbare Schritte pro Periode, maximalen Zählerwert, theoretische und ganzzahlige Auflösung, erreichbare Frequenz sowie Frequenzfehler. Damit können Sie Mikrocontroller-Timer planen, bevor Sie Registerwerte festlegen oder Firmware schreiben.

Wie Takt und PWM-Frequenz die Auflösung bestimmen

Ein Hardware-Timer schreitet mit jedem Tick fort und startet nach der programmierten Periode neu. Bei flankenorientierter PWM ergibt die Division des Eingangstakts durch Vorteiler und gewünschte PWM-Frequenz die ideale Zahl der Zählerzustände pro Periode. Mehr Zustände ermöglichen mehr unterschiedliche Tastgradstufen im Vergleichsregister. Die Auflösung entspricht daher dem Logarithmus zur Basis zwei der Zustandszahl. Der Rechner rundet die ideale Schrittzahl ab, weil ein Timer keine Tick-Bruchteile ausführen kann, und rundet anschließend den Logarithmus ab, um vollständige Bits anzugeben. Beispielsweise liefern 72 MHz und 20 kHz ohne Vorteiler 3,600 Schritte, theoretisch etwa 11.81 Bit und praktisch 11 vollständige Bit. Der maximale Zählerwert ist um eins kleiner, da gewöhnlich von null bis ARR oder TOP einschließlich gezählt wird. Eine höhere PWM-Frequenz verringert die Ticks je Zyklus; eine niedrigere Frequenz ermöglicht feinere Tastgradschritte.

So lesen Sie die berechneten Werte

Verwenden Sie für timer_clock_hz den Takt, der das Timer-Peripheriegerät vor dessen Vorteiler tatsächlich speist. Übernehmen Sie nicht ungeprüft den CPU-Takt: Mikrocontroller leiten Timer häufig von Peripheriebussen ab, und manche Taktbäume multiplizieren ihn. pwm_frequency_hz ist die gewünschte flankenorientierte Ausgangsfrequenz. prescaler muss eine positive Ganzzahl sein und ist standardmäßig eins. timer_tick_hz bezeichnet den geteilten Takt. ideal_counts_per_period bewahrt das mathematische Verhältnis, available_counts_per_period enthält die nutzbare Ganzzahl. max_counter_value zieht eins davon ab. resolution_bits nennt vollständige Binärbits; theoretical_resolution_bits behält den Bruchwert. actual_pwm_frequency_hz verwendet die ganzzahlige Periode und kann geringfügig über dem Ziel liegen; frequency_error_percent misst die Abweichung. Die Automatisierung per API kostet $0.002 je erfolgreichem Element. Die Berechnung arbeitet deterministisch, ohne Netzwerk oder Bauteildatenbank.

Das Ergebnis auf reale Mikrocontroller anwenden

Nutzen Sie das Ergebnis als Machbarkeitsprüfung und vergleichen Sie es danach mit dem Referenzhandbuch Ihres Mikrocontrollers. Ein 16-Bit-Periodenregister kann keinen Maximalwert über 65,535 aufnehmen, selbst wenn das Taktverhältnis mehr Zustände erlaubt; erhöhen Sie dann den Vorteiler oder begrenzen Sie die Hardwarebreite separat. Ein Ergebnis von 10 Bit verlangt auch nicht zwingend den Wert 1,023, sondern sagt aus, dass mindestens 1,024 Positionen verfügbar sind. Mittenorientierte PWM zählt meist aufwärts und abwärts und fügt dadurch einen Faktor nahe zwei ein; verwenden Sie hierfür die gerätespezifische Gleichung. Berücksichtigen Sie außerdem Totzeit, Synchronisation, Wiederholungszähler und Taktänderungen im Stromsparmodus. Wenn Frequenzgenauigkeit wichtiger als Granularität ist, prüfen Sie benachbarte Kombinationen aus Vorteiler und Periode. Für feinere Schritte senken Sie die PWM-Frequenz oder erhöhen den Timer-Takt. Mathematische Auflösung ist keine analoge Genauigkeit: Verzögerungen, Jitter, Treiber und Last können die wirksame Leistung mindern.

LED-Timer dimensionieren

Prüfen Sie, ob eine flimmerfreie Frequenz noch genügend Stufen für sanfte Helligkeitsänderungen bietet.

Motor-Firmware planen

Vergleichen Sie die Schaltfrequenz mit der vollständigen Bitauflösung des Motor-Timers.

Timer-Vorteiler auswählen

Bewerten Sie den Einfluss auf Ticks, Zählerbereich, erreichbare Frequenz und Tastgradfeinheit.

Welche Formel verwendet der Rechner?

Für flankenorientierte PWM gilt: Schritte = floor(Takt / Vorteiler / PWM-Frequenz), Bits = floor(log2(Schritte)).

Warum ist die theoretische Auflösung gebrochen?

Der Logarithmus kann zwischen Zweierpotenzen liegen; vollständige Bits geben den größten passenden Binärbereich an.

Warum weicht die Istfrequenz vom Ziel ab?

Die ideale Periode kann einen Tick-Bruchteil enthalten. Das Abrunden auf ganze Schritte kann die erreichbare Frequenz erhöhen.

Gilt das Ergebnis für mittenorientierte PWM?

Die direkte Berechnung nimmt Flankenausrichtung an. Mittenorientierte Modi zählen gewöhnlich aufwärts und abwärts.

Begrenzt der Rechner die Registerbreite?

Nein. Vergleichen Sie max_counter_value mit dem Hardwarelimit, etwa 65,535 bei einem 16-Bit-Periodenregister.

Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.

POSThttps://api.kit.forhosting.com/elec/pwm-resolution

Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.

curl -X POST https://api.kit.forhosting.com/elec/pwm-resolution \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"timer_clock_hz":72000000,"pwm_frequency_hz":20000}'
{
  "timer_clock_hz": 72000000,
  "pwm_frequency_hz": 20000
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "elec.pwm_resolution",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.

pro Anfrage$0.002

Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.

HTTPCodeBedeutung
401unauthorizedDer API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer).
402insufficient_balanceIhr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht.
404unknown_typeUnbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog.
429rate_limitedZu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt.

Vollständige KIT-Dokumentation lesen →