Dies sind nicht die einzigen verfügbaren Frequenzen für die PWM-Signale. Dies sind jedoch die Frequenzen, die vom angewendeten Vorteiler bestimmt werden (den Sie wie unten beschrieben leicht ändern können).
Jedes der 3 Paare von PWM-Pins ist wie folgt mit einem Timer verbunden, von denen jeder seine eigene Grundfrequenz hat:
- Die Pins 5 und 6 sind auf timer0 mit einer Grundfrequenz von 62500Hz gepaart
- Die Pins 9 und 10 sind auf timer1 mit einer Grundfrequenz von 31250Hz gepaart
- Die Pins 3 und 11 sind auf Timer2 mit einer Grundfrequenz von 31250 Hz gepaart
Dann kann für jeden Pinsatz eine Reihe von Prescaler-Werten ausgewählt werden, die die Grundfrequenz dieses Pinspaares teilen. Die verfügbaren Vorteilerwerte sind:
- Die Pins 5 und 6 haben Vorskaliererwerte von 1, 8, 64, 256 und 1024
- Die Stifte 9 und 10 haben Vorskaliererwerte von 1, 8, 64, 256 und 1024
- Die Stifte 3 und 11 haben Vorskaliererwerte von 1, 8, 32, 64, 128, 256 und 1024
Die verschiedenen Kombinationen ergeben unterschiedliche Frequenzen in einem gegebenen PWM-Pin. Beachten Sie, dass für Timer 2 (verbunden mit den Pins 3 und 11) mehr Prescaler-Werte verfügbar sind, sodass mehr Frequenzen verfügbar sind.
Warum Timer 2 anders ist, ist eine andere Frage.
Bearbeiten: Hier ist eine Liste der möglichen PWM-Frequenzen pro Pin (aus diesem Artikel ):
Für die Pins 6 und 5 (OC0A und OC0B):
- Wenn TCCR0B = xxxxx001 ist, beträgt die Frequenz 64 kHz
- Wenn TCCR0B = xxxxx010 ist, beträgt die Frequenz 8 kHz
- Wenn TCCR0B = xxxxx011, beträgt die Frequenz 1 kHz (dies ist die Standardeinstellung des Diecimila-Bootloaders).
- Wenn TCCR0B = xxxxx100 ist, beträgt die Frequenz 250 Hz
- Wenn TCCR0B = xxxxx101 ist, beträgt die Frequenz 62,5 Hz
Für die Pins 9, 10, 11 und 3 (OC1A, OC1B, OC2A, OC2B):
- Wenn TCCRnB = xxxxx001 ist, beträgt die Frequenz 32 kHz
- Wenn TCCRnB = xxxxx010 ist, beträgt die Frequenz 4 kHz
- Wenn TCCRnB = xxxxx011, beträgt die Frequenz 500 Hz (dies ist die Standardeinstellung des Diecimila-Bootloaders).
- Wenn TCCRnB = xxxxx100 ist, beträgt die Frequenz 125 Hz
- Wenn TCCRnB = xxxxx101 ist, beträgt die Frequenz 31,25 Hz
TCCRnB
Hier stellen Sie die Prescaler-Bits für den Timer ein n
, die n
durch 0, 1 oder 2 ersetzt werden, je nachdem, welchen Timer Sie einstellen möchten. Wenn Sie sich bei bitweisen Operationen immer noch unsicher sind, lesen Sie dieses Bit-Mathe-Tutorial .
Meine Quellen:
Beachten Sie, dass es in diesen Quellen Unterschiede zu geben scheint, ob die Pins 9 und 10 dasselbe Verhalten haben wie 5 und 6 oder 3 und 11, aber Sie verstehen es trotzdem. Ich lese den Datensatz, um herauszufinden, was richtig ist oder ob dies ein Unterschied zwischen den Boards ist.