1
此代码会发出短促的声音。我怎样才能发出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