Hallo,
ich möchte einen 40kHz Burst erzeugen. Dazu stelle ich den Oszillator auf ca. 40 kHz und erzeuge einen Interrupt, der dann bis ca. 16 (Perioden) zählt und dann den Oszillator stoppt. Aber irgendwie funzt wieder mal gar nichts.
Hier ist mein Code:
Code:
void _40khz_init (void) {
DDRB = 0xFF;
OCR1A = 12; // PWM einstellen, bevor der Timer startet
OCR1B = 800;
ICR1 = 25; // TOP-wert
TCCR1A = (1<<COM1A1) | (1<<COM1B1) | (1<<WGM11);
TCCR1B = (1<<WGM13)|(1<<WGM12) | (1<<CS10);
}
SIGNAL (TIM1_OVF) {
send ("0");
}
SIGNAL (TIM1_COMPA) {
send ("1");
}
SIGNAL (TIM0_OVF) {
send ("2");
}
SIGNAL (TIM1_COMPB) {
send ("3");
}
int main(){
_40khz_init();
uart_init();
/*Timer-Interrupt*/
TIMSK |= (1 << TOIE0) ;
sei();//enable Interrupts
for(;;);
}
Lesezeichen