Frage zum Interrupt

OP #2713164
Lesenswert?

Ich habe schon einmal gelernt, wie man den Interrupt anwendet, habe es 
aber leider aufgrund einer längeren Pause in diesem Thema vergessen. 
Könnte mir bitte jemand einen Beispielcode zum Interrupt geben?
Es wird ein interner Interrupt verwendet, der immer nach einer Sekunde 
eine Variable hochzählen soll. Benötige nur die Schreibform, Funktion 
kenne ich schon. Bitte in C.

Danke im Vorraus.
Gast #2713191
Lesenswert?

In Code sieht das recht simpel aus (Bsp. mit Atmega16)
1
  TCCR1B = 0x02;        //Timer System Frequency Prescaler 8
2
  TIMSK |= (1<<TOIE1); //Interrupt alle 100ms (Timer 1)
3
  sei();               // Globale Interrupts erlauben

Das hier kommt ins Main, allerdings vor der while(1) Schleife.
1
 #ifndef TIMER1_OVF_vect  
2
  #endif
3
  ISR (TIMER1_OVF_vect) //Interrupt Routine, wird alle 100ms ausgeführt.
4
  {
5

6
  i++
7

8
  }

Und das hier kommt nach der Main.
Das ganze löst alle 100ms einen Interrupt aus. Als Timer wird der 16-bit 
Timer benutzt (weiss nicht ob der Atmega8 den auch hat), und der Quarz 
ist 4.19304 Mhz

Gruss
Gordon

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