このコードは短い音を出します。どのように私は440hzの音を作ることができますか?avrどのように440Hzのサウンドを定義するのですか?
編集: または次のようなもの:私は速いPWMを使いたいとは思わない。
#include <avr/io.h>
#include <avr/interrupt.h>
ISR(TIMER1_COMPA_vect) {
PORTB = 0;
}
ISR(TIMER1_OVF_vect) {
PORTB ^= 8;
}
int main(void) {
DDRB = 8;
PORTB = 0;
TCCR1B=(1 << CS10); // Prescaler: 1, Mode: 0
OCR1A = 9089.91; // (F_CPU/2/1/440) - 1;
TIMSK1 |= (1 << OCIE1A) | (1 << TOIE1); //Interrupt an
PCICR = 0x01;
sei(); // Interrupts global aktivieren
while(1) {
};
}
このようにするには、遅延ループを調整する必要があります。より良い方法は、ハードウェアタイマーを使用することです。 –
デジタル出力ポートを使用していますか? –
はいデジタル出力ポートを使用しています – Cashew