Hallo! Ich baue gerade eine Countdown-Uhr und bin ein bisschen am ausprobieren mit einem Piezo-Piepser. Nun folgende Frage:
Mit welchen Bits kann ich die Tonhöhe stufenlos variieren (will eine Art amerikanische Polizeisirene realisieren)?
Gut, ich kann mit der relativ groben Vorteiler-Einstellung meines Timers den Rahmen vorgeben. Dann kann ich noch mit dem OCR1A das Puls-Pause-Verhältnis ändern, was jedoch nichts an der eigentlichen Tonhöhe ändert.
Nun habe ich noch gelesen, dass TCNT1L / TCNT1H die Überlaufgrenzen festlegt. Doch auch hier höre ich keinen Unterschied... hier mal mein Test-Code
Gruß,Code:#include <avr/io.h> #include <avr/delay.h> int main () { DDRD=0xFF; TCCR1A |= (1<<COM1A1)|(1<<PWM10)|(1<<PWM11); //nicht invertierte 10Bit-PWM TCCR1B |= (1<<CS11); //clk/8 Timerfrequenz uint16_t i; OCR1A=128; //Puls-Puase-Verhaeltnis 1:1 (Output Comp. Reg.) TCNT1L=1; for(;;){ for(i=0;i<=1023;i++){ TCNT1H=i; //da ändert sich nichts hörbares? _delay_ms(20); } } }
Sebastian







Zitieren

Lesezeichen