hallo,
Ich versuche hier einen simplen Piezo ohne Elektronik an einem Tiny13V
zu betreiben. Angeschlossen ist er an PB0:
1 | #include <avr/io.h>
|
2 | #include <avr/interrupt.h>
|
3 | #include <util/delay.h>
|
4 |
|
5 |
|
6 | int main (void)
|
7 | {
|
8 | DDRB|=(1<<0);
|
9 | TIMSK0|=(1<<TOIE0);
|
10 | sei();
|
11 | TCCR0B|=(1<<CS01);
|
12 | //TCCR0B|=(1<<CS00);
|
13 |
|
14 | for(;;)
|
15 | {
|
16 | PORTB&=~(1<<0);
|
17 | // _delay_ms(1);
|
18 | }
|
19 | return 0;
|
20 | }
|
21 |
|
22 | ISR(TIM0_OVF_vect)
|
23 | {
|
24 | PORTB|=(1<<0);
|
25 | }
|
Den genauen Resonanzbereich des Piezo kenne ich nicht, allerdings meine
ich, dass er um die 5KHz liegt, also müsste mind. eine der
Prescaler-Einstellungen ein hörbares akustisches Signal produzieren:
der Tiny13V läuft normalerweise auf 4MHz, CLKDIV8 ist gesetzt, d.h. er
müsste tatsächlich auf 500 KHz laufen.
500KHz/8 = 63 KHz
500KHz/64 = 7.8 KHz
500KHz/256 = 2 KHz
Liegt alles noch im hörbaren Bereich, trotzdem tut sich nichts. Wo liegt
der Denkfehler?
Danke
Dominik