Forum: Mikrocontroller und Digitale Elektronik m328 timerproblem


von grundschüler (Gast)


Lesenswert?

Ich habe zwei Timer:

1
#define ti_prescaler_clr     ((1 << CS02)|(1 << CS01)|(1 << CS00))
2
3
#define ti_prescaler_1     (1 << CS00)
4
#define ti_prescaler_8     (1 << CS01)
5
#define ti_prescaler_64    (1 << CS01)|(1 << CS00)
6
#define ti_prescaler_256   (1 << CS02)
7
#define ti_prescaler_1024  (1 << CS02)|(1 << CS00)
8
9
void init_timer0_pwm (void){
10
11
  // Start  timers.
12
TCCR0B |= ti_prescaler_1024;//1
13
14
  //Sets  timers in inverted pair mode.
15
TCCR0A =0
16
    | (1 << COM0A1) 
17
//    | (1 << COM0A0) 
18
    | (1 << COM0B1) 
19
    | (1 << COM0B0)
20
    | (1 << WGM00)
21
//    | (1 << WGM01)
22
  ;
23
  
24
 
25
  OCR0A =  30;//d6
26
  OCR0B =  10;//d5
27
28
29
  DDRD |= 1<<6|1<<5;
30
  }
31
32
33
34
  void init_timer2_ctc (void){
35
   TCCR2B |= ti_prescaler_1024;
36
  TCCR2B |= (1<<WGM22);
37
  OCR2A = 100;
38
  TIMSK2 |= (1<<OCIE2A);
39
  sei();
40
  }
41
42
43
v u32 test;
44
ISR(TIMER2_COMPA_vect)
45
{
46
//  TCNT0=0;
47
        OCR0A=10;
48
  test++;
49
 
50
}


Timer 2 läuft im ctc-mode bis 100. Dann soll pwm-timer0 mit 
TCNT0=0;zurückgesetzt werden, so dass er auch immer bis 100 (statt 255) 
läuft.


Funktioniert leider nicht. Setzt man TCNT0 hört timer0 einfach auf.


Warum?

Danke für jede Unterstützung.

von Karl M. (Gast)


Lesenswert?

Was soll den das sein?
1
v u32 test;

von grundschüler (Gast)


Lesenswert?

Karl M. schrieb:
> Was soll den das sein?
> v u32 test;

volatil uint32_t Zaehlvariable;

Wird auf dem lcd angezeigt um zu sehen ob der timer2 läuft.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.