Re: Interrupt hängt Kategorie: Programmierung C (von Franz-Peter - 6.03.2012 12:09) | ||
Als Antwort auf Interrupt hängt von Hans - 6.03.2012 10:40 | ||
| ||
> Hallo, > > ich möchte mit einem I2C LED Display eine Stoppuhr bauen > die von einem Buzzer ausgelöst und wieder angehalten wird. > > Habe mit Hilfe von Beispielen das Programm geschrieben. > > Das Program läuft aber nicht wie gewünscht, denn die Interruptschleife > hängt. > > Was habe ich nicht richtig gemacht?? > > Hier die Schleife: > void INT_10ms(void) > { > if (Start==1) > { cnt1++; > if (cnt1==10) > { cnt10++; > if (cnt10==10) > { Sekunde1++; > if (Sekunde1==10) > { Sekunde10++; > if (Sekunde10==10) > { Sekunde10=0; > } > Sekunde1=0; > } > cnt10=0; > } > cnt1=0; > } > LED_Display(); > > } > Buzzer(); > irqcnt=Irq_GetCount(INT_TIM2COMP); > > Die Variablen cnt1,cnt10, Sekunde1, Sekund10 hab ich als byte def. > > Bin für jede Hilfe dankbar! > > MfG Hans Die Interruptroutinen sollten immer möglichst kurz sein. Schliesslich wird diese z.B. alle 10ms aufgerufen. Unterprogrammaufrufe sind da eher nicht zu empfehlen. Ich denke sowohl LED_Display(), als auch Buzzer() sind Routinen, die für den direkten Aufruf aus einem IRQ viel zu viel Zeit benötigen. Gru� Franz-Peter | ||
Antwort schreiben Antworten: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum