Jacob2
01.08.2009, 14:21
Hi,
eigentlich war ich der Meinung, ich würde mit diesem Code am Pin OC1A meines Mega8 ein ca. 440 Hz Signal bekommen, aber dem ist irgendwie nicht so:
#include <avr/io.h>
int main (void)
{
//Signal an OC1 wird getoggelt
//PWM deaktiviert
TCCR1A |= (1<<COM1A0);
TCCR1A &= ~((1<<WGM10) | (1<<WGM11) | (1<<COM1A1));
//CTC-Betriebsart gesetzt
//Takt: CLK/8
TCCR1B |= (1<<WGM12) | (1<<CS11);
//Vergleichswert = 142
OCR1A = 0b0000000010001110;
//OC1 wird mit (1MHz/(8*(142 + 1)) = 874 Hz) umgeschaltet,
//d.h. die Frequenz ist 874/2 = 437 Hz (soll ca. Kammerton A sein)
}
Ich will damit über einen Transistor einen kleinen Lautsprecher zum Klingen bringen.
Leider bin ich zur Zeit etwas unter Zeitdruck! Kann mir jemand helfen?
eigentlich war ich der Meinung, ich würde mit diesem Code am Pin OC1A meines Mega8 ein ca. 440 Hz Signal bekommen, aber dem ist irgendwie nicht so:
#include <avr/io.h>
int main (void)
{
//Signal an OC1 wird getoggelt
//PWM deaktiviert
TCCR1A |= (1<<COM1A0);
TCCR1A &= ~((1<<WGM10) | (1<<WGM11) | (1<<COM1A1));
//CTC-Betriebsart gesetzt
//Takt: CLK/8
TCCR1B |= (1<<WGM12) | (1<<CS11);
//Vergleichswert = 142
OCR1A = 0b0000000010001110;
//OC1 wird mit (1MHz/(8*(142 + 1)) = 874 Hz) umgeschaltet,
//d.h. die Frequenz ist 874/2 = 437 Hz (soll ca. Kammerton A sein)
}
Ich will damit über einen Transistor einen kleinen Lautsprecher zum Klingen bringen.
Leider bin ich zur Zeit etwas unter Zeitdruck! Kann mir jemand helfen?