Hi,
danke für das Prima tutorial in sachen Timer, bis jetzt hat auch alles
problemlos geklappt, aber wenn ich nun versuche bei meinem atmega32 dem
timer1 mittels registerzuweisung nen neuen Vergleichswert zu geben dann
übernimmt der diesen einfach nicht, weder in der Simulation noch auf der
Hadware. Anbei ist der Code (Die abgefragten PortD's sind taster)
1 | #include <avr/io.h>
|
2 | #include <stdint.h>
|
3 | #include <avr/interrupt.h>
|
4 |
|
5 | int main(void)
|
6 | {
|
7 | DDRD = 0xE0; //1:Ausgang LED_pin 1110
|
8 |
|
9 | TCCR1A=0x00;
|
10 | TCCR1B=0x0D;
|
11 |
|
12 | OCR1AH=0x03;
|
13 | OCR1AL=0xD0;
|
14 |
|
15 | TIMSK1|=0x02;
|
16 |
|
17 | sei();
|
18 |
|
19 | while(1)
|
20 | {
|
21 | if((PIND & 0x04) && (OCR1AH>0))
|
22 | {
|
23 | OCR1AH-=0x01;
|
24 | }
|
25 | if((PIND & 0x08) && (OCR1AH<0xFF))
|
26 | {
|
27 | OCR1AH+=0x01;
|
28 | }
|
29 | }
|
30 | return 0;
|
31 | }
|
32 |
|
33 | ISR(TIMER1_COMPA_vect)
|
34 | {
|
35 | PORTD^=0x20;
|
36 | }
|