Timer OCR ändern wärend Ausführung

Gast #1335709
Lesenswert?

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
 }

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren