Noch eine Frage zum Interrupt

OP #2713303
Lesenswert?

Habe folgenden Code für den ATmega644:
1
#ifndef F_CPU
2
#define F_CPU 16000000UL
3
#endif
4

5
#include <avr/io.h>
6
#include <util/delay.h>
7
#include <avr/interrupt.h>
8
#include <stdio.h>
9
#include "lib_lcd.h"
10

11
#ifndef TIMER1_OVF_vect
12
#endif
13

14
#define TASTER1 (PORTC&1)==1
15
#define TASTER2 (PORTC&1)==1
16

17
char Sekunden     = 0;
18
char Minuten      = 0;
19
char Stunden      = 0;
20

21

22
// INTERRUPT
23

24
ISR (TIMER1_OVF_vect)             //Interrupt-Routine
25
{
26
  cli();                  //Interrupt abschalten
27
  
28
  Sekunden++;          
29
  
30
    if (Sekunden >= 59) 
31
    {
32
      Sekunden = 0;
33
      Minuten++;
34
  
35
      if (Minuten >= 59) 
36
      {
37
        Minuten = 0;
38
        Stunden++;
39
  
40
        if (Stunden >= 23) 
41
        {
42
          Stunden = 0;
43
        }
44
      }
45
    }
46
  }
47

48
  sei();                  //Interrupt zulassen
49
}
50

51

52
int main ()
53
{
54
  char text_buffer[17];
55

56
  TCCR1B = 0x02;              //Timer System Frequency Prescaler 8
57
  TIMSK0 |= (1<<TOIE1);          //Interrupt alle 100ms (Timer 1)
58
  sei();                  //Interrupt erlauben
59

60
  lcd_init();
61

62
  while (1)
63
  {
64
    if (TASTER1)
65
    {
66
      Minuten++;
67
    }
68

69
    if (TASTER2)
70
    {
71
      Stunden++;
72
    }
73
  
74
  sprintf(text_buffer,"%02u:%02u:%02u",Stunden,Minuten,Sekunden);
75
  lcd_string_xy(0,1,text_buffer);
76
  }
77

78
}

Wie muss ich nun den Timer-Interrupt parametrieren um jede Sekunde den 
Interrupt auszulösen?
#2713310
Lesenswert?

Obi Wan schrieb:

> Wie muss ich nun den Timer-Interrupt parametrieren um jede Sekunde den
> Interrupt auszulösen?

Einfach mal ein wenig nachdenken.
Hier ist eine Anleitung dazu, wie man an Timer rangeht, so dass man all 
diese Dinge leicht bestimmen kann

FAQ: Timer

Du musst dazu keine komplizierten Formeln können oder sonstwas. Du musst 
nur soviel Mathe können, dass du ausrechnen kannst: wenn du in 10 
Minuten 1 Apfel essen kannst, wieviele Äpfel kannst du dann in 1 Stunde 
essen? Jeder Grundschüler kann das.

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