Frage zu PWM und Prozessortakt

Kann mir einer verständlich erklären, welcher Zusammenhang zwischen Prozessortakt und PWM-Frequenz besteht?

Beispiel:
Ich missbrauch nen Attiny45 als PWM(Dimmer).

// Attiny 45 Code PWM

int analog1 = A3; //Analog In
int pwm1 = 0; // PWM out


void setup() {
  pinMode(analog1, INPUT); // Pin Defitintion
  pinMode(pwm1, OUTPUT);

}

void loop() {
  int an1 = analogRead(analog1);
  delay(10);

  int an2 = analogRead(analog1);
  delay(10);

  int an3 = analogRead(analog1);
  delay(10);

  int an4 = analogRead(analog1);
  delay(10);

  int an5 = analogRead(analog1);
  delay(10); // 5 mal gemessen

  int an = ((an1 + an2 + an3 + an4 + an5) / 5 ) / 4;

  analogWrite(pwm1, an);

}

Brenne ich den Bootloader auf 1Mhz und den Sketch in 1MHz messe ich als PWM-Frequenz 238Hz.
1Mhz / 8Mhz : 30,30Hz
8Mhz / 1Mhz : 50,0Hz
8MHz / 8 Mhz : 243,9Hz.

Wenn ich nun mit dem 45er einen Motor ansteuern will hab ich also keine Chance, aus dem Hörbaren Frequenzbereich in den kHz-Bereich zu takten?

  pinMode(analog1, INPUT); // Pin Defitintion

Warum schaltest du den Pin in den Digitalmodus, wenn du doch analog lesen möchtest?
Die Zeile kann weg.

Brenne ich den Bootloader auf 1Mhz und den Sketch in 1MHz
...
8Mhz / 1Mhz :

Was bedeutet das?
Die Taktfrequenz wird mit den Fuses fest gelegt.
Und unterscheidet sich nicht für Bootloader und Anwendung.

Die PWM Frequenz ist über die Timer Register einstellbar.
http://playground.arduino.cc/Code/PwmFrequency
http://playground.arduino.cc/Main/TimerPWMCheatsheet
Wie es beim Tiny geht, müsstest du dem Datenblatt entnehmen

Beim ATmega328 gibt es nur 5-6 Teiler die den Systemtakt auf die PWM-Frequenz herunterteilen.
Die Einstellung erfolgt über ein Register des Kontrollers.
Ich vermute verhält es sich ähnlich beim ATtiny.

Wenn Du den Sketch für den falschen Prozessortakt kompilierst sind Zeitabhängige Vorgänge falsch wie zB Millis und Micros, delay, Baudrate Serielle Schnittstelle, I2C und SPI ...

Grüße Uwe

uwefed:
Ich vermute verhält es sich ähnlich beim ATtiny.

Die ATtiny25/45/85 sind besser als die Atmegas was PWM betrifft. Da hat man auf Timer1 eine riesige Auswahl an Prescaler Optionen:

Seite 88-90

Außerdem gibt es einen Aysynchron-Modus in dem statt dem Systemtakt der höhere Takt der PLL Clock als Zeitbasis genommen wird (32 oder 64MHz). Damit sind PWM Frequenzen von mehreren 100 kHz möglich! Siehe Seite 83