이 코드는 짧은 소리를냅니다. 어떻게 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