Hallo
ich will am pin PB0 ein ungleichmässiges rechteck signal erzeugen
eigenlich nicht schwer ..
ich initialisiere dazu meine timer2 folgendermassen...
1 | DDRB = 0xFF;
|
2 |
|
3 | TCCR2 |= (1<<CS20)|(1<<CS21)|(1<<CS22); // prescaler auf 1024 bei 8 MHZ rund 8Khz
|
4 | TCCR2 &= ~(1 << WGM20)|~(1 << WGM21)|~(1 << COM20)|~(1 << COM21); // compare mode normal OC2 disconected, normaler mode
|
5 |
|
6 | TCNT2 = 0x00; //startwert auf 0 setzten
|
7 |
|
8 | OCR2 = 0x80; //compare value einstellen
|
9 |
|
10 | TIMSK |= (1<<OCIE2)|(1<<TOIE2); //interrupts enablen für den timer
|
wenn jetzt die interrupts ausgelöst werden soll der PB0 ein bzw
ausgeschaltet werden ..
1 | SIGNAL (TIMER2_OVF_vect)
|
2 | {
|
3 |
|
4 | PORTB |= ( 1 << PB0 );
|
5 |
|
6 |
|
7 | }
|
8 |
|
9 |
|
10 | SIGNAL (TIMER2_COMP_vect)
|
11 | {
|
12 |
|
13 | PORTB &= ~( 1 << PB0 );
|
14 |
|
15 | }
|
bei dem eingestellen compare wert in OCR2 (0x80) würde ich dann einen
gleichmässigen rechteck erwarten ... es kommt aber ne null linie mit
kurzen peaks raus ... was mach ich da falsch?
aso µc ist ein ATMega32 mit 8MHz intern...
K_II