Forum: Mikrocontroller und Digitale Elektronik Funktion verstehen


von UNI-T (Gast)


Lesenswert?

Hallo Gemeinde,


ich versuche diese Code nachzuvollziehen komme aber nicht weiter:

Also der Timer2 wurde als compare match definiert.

ucMsTimer wieso wird dort nur bis 50 gezählt?

ulLowWoltageOffTimer = 90000000; was ist das für eine definition sollen 
das 1,5 std darstellen?

1
 ISR (TIMER2_COMPA_vect) {                                      
2
  static unsigned char ucCounter;
3
  static unsigned char ucMsTimer;
4
  unsigned char ucLED;
5
  
6
  if ( ucMsTimer > 50 ){
7
    ucMsTimer = 0;
8
  } else {
9
    ucMsTimer++;
10
  }
11
12
  // Millisekunden-Timer
13
  if ( ucMsTimer==0 ){
14
    // Tastenabfrage
15
    handler_tasten();
16
    // Laufzeitüberachung
17
    if ( s_IO.ulLaufzeit > 0 ){
18
      s_IO.ulLaufzeit--;
19
    }
20
    // Zweifarbenblinktimer
21
    if ( s_IO.uiZweifarbenBlinktimer > 0 ){
22
      s_IO.uiZweifarbenBlinktimer--;
23
    }
24
    // Wiederholungstimer
25
    if ( s_IO.uiTimerRepeat > 0 ){
26
      s_IO.uiTimerRepeat--;
27
    }
28
    // Akkutimer
29
    if ( s_IO.uiTimerAkku > 0 ){
30
      s_IO.uiTimerAkku--;  
31
    }
32
    if ( s_IO.ulTimerPostCharge > 0 ){
33
      s_IO.ulTimerPostCharge--;
34
    }
35
    if ( s_IO.ulTimerChargeTime > 0 ){
36
      s_IO.ulTimerChargeTime--;
37
    }
38
    // LV-Timer
39
    if ( uiTimerLV > 0 ){
40
      uiTimerLV--;
41
    }
42
    // LV-Timer
43
    if ( uiTimerLVOff > 0 ){
44
      uiTimerLVOff--;
45
    }
46
    // Low-Voltage-Off-Timer
47
    if ( ucLowVoltage ){
48
      if ( e_State == RUN ){
49
        if ( ulLowWoltageOffTimer > 100 ){
50
          ulLowWoltageOffTimer -= 100;
51
        } else {
52
          ulLowWoltageOffTimer = 0;
53
        }
54
      } else {
55
        if ( ulLowWoltageOffTimer > 0 ){
56
          ulLowWoltageOffTimer--;
57
        }        
58
      }
59
    } else {
60
      ulLowWoltageOffTimer = 90000000;  
61
    }
62
    
63
  }


Gruß Uni-T

von Wassanabi (Gast)


Lesenswert?

Ganzes Programm als *.c Anhang, sonst nur Raten möglich.

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.