Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Suche Beispiele für IRQ-Anwendung Kategorie: Programmierung Basic (von Franz-Peter - 20.02.2012 20:33)
Als Antwort auf Re: Suche Beispiele für IRQ-Anwendung von PeterS - 17.02.2012 11:32
Ich nutze:
C-Control Pro Mega32, C-Control Pro Mega128, CC-Pro 32 Application Board
> >
> > Hallo Torsten.
> > Danke für dein Beispiel, aber mit C tue ich mir noch etwas schwer ;-)
> >
> > Ich habe durchschnittliche Kenntnisse in Basic.
> > Um das C-Basic studieren zu können, suche ich mir Beispiele und experimentiere
> > mit den Parameter, bis ich die Wirkungsweise verstanden habe.
> > Das klappte bisher recht gut, bei der Interrupt-Anwendung ist das
> > allerdings nicht so einfach ;-)
> > Im Handbuch wird zwar der Interrupt und seine Parameter gut erklärt
> > (Kapitel 6.11), das Beispiel (6.11.5) ist allerdings in C.
> > Programm-Beispiele, die ich hier finde, sind entweder auch in C
> > oder die Zeilen sind (für Einsteiger) schlecht oder garnicht kommentiert.
> > Manchmal klingen Unterroutinen wie Parameter, z.B. Irq_SetVect(INT_0,IRQ_SIR)
> > In Uli Sommers Praxisbuch ist zwar ein prima Beispiel in Basic drin,
> > allerdings könnte der ein oder andere Anfänger am eingeschlichenen
> > Druckfehler (Irq_Set Vect mit Leerzeichen) verzweifeln ;-)
>
> Wir haben soviele Beispiel Programme mitgeliefert. Viele davon nutzen
> Interrutps. Alle Programme gibt es in englisch, deutsch, BASIC und C.
>
> >
> > Mittlerweile klappt es auch einigermaÃ?en mit der IRQ-Behandlung ;-)
> >
> > Noch eine Frage dazu:
> > Ich kann ja die steigende, fallende, oder beide Flanken kontrollieren.
> > Ist es möglich, der steigende Flanke eine andere Routine zuzuweisen
> > als der fallenden Flanke?
>
> Nein, das geht nicht.
>
> Gruss Peter
>
> > Es wäre für mein Projekt ein Komfort-Merkmal, aber nicht zwingend
> > notwendig.
> >
> > Achim

Hallo Achim,
Du kannst die Flanke doch ganz einfach in deiner Interruptroutine auswerten:
Den IRQ stellst Du so ein, dass er auf beide Flanken reagiert.
Am Anfang der Routine fragst Du den Port ab:
steht er auf high, war es eine steigende Flanke, sonst eine fallende. Du kannst
also mit nur einer Abfrage am Anfang der Interruptroutine in die entsprechende Routine für
die steigende/fallende Flanke verzweigen.
GruÃ?
Franz-Peter


    Antwort schreiben


Antworten: