Witam, kupiłem ostatnio ten głośniczek i chciałbym użyć go do wygenerowania jakiejś melodii. Znalazłem tabelkę przedstawiającą częstotliwości nut. Nie rozumiem jak mam wygenerować te dźwięki i ustawić odpowiednią częstotliwość. Głośniczek sterowany jest sygnałem PWM (w trybie fast) przez mikrokontroler Atmega328P. Chodzi tutaj o częstotliwość sygnału PWM, mam ją cały za każdym razem zmieniać? Jak mam tą częstotliwość powiązać z rejestrami służącymi do ustawienia współczynnika wypełnienia? Widziałem w dokumentacji wzory na obliczanie częstotliwości PWM , ale nawet po odpowiednich obliczeniach nie słyszałem pożądanego dźwięku.
/*
F_CPU = 16000000Hz
*/
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRB |= (1 << PB1);
PORTB |= (1 << PB1);
TCCR1A |= (1 << WGM11) | (1 << COM1A1);
TCCR1B |= (1 << WGM12) | (1 << WGM13) | (1 << CS10);
ICR1 = 1000;
while(1)
{
OCR1A++;
if(OCR1A == 1000) OCR1A = 0;
_delay_ms(100);
}
return 0;
}