Forum: Mikrocontroller und Digitale Elektronik Frage zum Interrupt


von Jannik O. (jannipanni)


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.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?


von spontan (Gast)


Lesenswert?

i++;


Oder wie war die Frage?

Bei den µC-Herstellern gibt es Beispiel-Code zum Saufuadern, wenn Du 
weißt was ich meine!

von Jannik O. (jannipanni)


Lesenswert?

das i++ weiß ich auch noch.
Ich meine eher die ISR, wie man die einstellt, dass die nach jeder 
sekunde durchlaufen wird.

von gordon51freeman (Gast)


Lesenswert?

Welcher Controller?

von spess53 (Gast)


Lesenswert?

Hi

>Ich meine eher die ISR, wie man die einstellt, dass die nach jeder
>sekunde durchlaufen wird.

Datenblatt. Stichwort CTC.

MfG Spess

von Jannik O. (jannipanni)


Lesenswert?

benutze den atmega8

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?


von gordon51freeman (Gast)


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

von Jannik O. (jannipanni)


Lesenswert?

danke, sowas habe ich gesucht, jetzt kann ich den auch für den mega8 
umschreiben :D

von gordon51freeman (Gast)


Lesenswert?

Kein Problem, wälzt halt niemand gerne Datenblätter gell :)

von Jannik O. (jannipanni)


Lesenswert?

genau ;)

von Falk B. (falk)


Lesenswert?

Siehe Interrupt.

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.