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

Re: INT_ANA_COMP Kategorie: Programmierung Basic (von PeterS - 13.07.2010 8:47)
Als Antwort auf Re: INT_ANA_COMP von Stefan - 13.07.2010 1:19

> > > > Hallo,
> > > > hätte auch nochmal konkrete Fragen zum INT_ANA_COMP:
> > > > -Wie kann ich für den Interrupt einstellen,
> > > > ob eine externe oder die interne Referenzspannung verwendet wird?
> > > > -Wie kann ich einstellen, welches Ereignis den Interrupt auslöst?
> > > > (Bei den externen Interrupts kann dies ja über Ext_IntEnable eingestellt werden)
> > > > ....Stefan
> > > >
> > > >
> > > > > > Guck mal unter Bibliotheken - Analog-Comparator ;-)
> > > > >
> > > > > Ja, schon, aber...
> > > > > Meinst Du das ?:
> > > > > if (AComp(0x40)==1)         // Eingang (+) band gap reference 1,22V
> > > > > {
> > > > >   Msg_WriteChar('1');     // Ausgabe: 1
> > > > > }
> > > > > ...
> > > > > Mit einer ISR-Routine geht's dann wohl nicht.
> > > > >
> > >
> > > Lies mal die Doku. Unter Bibliotheken->Interrupt
> > >
> > > Gruss Peter
> >
> > Es ist aber noch was komplizierter. AuÃ?er den Interrupt zu setzen, muÃ? der richtige Wert in
> > das ACSR Register geschrieben werden. Der Byte Parameter an AComp wird direkt in das ACSR
> > Register geschrieben. Lies bitte das Analog Comparator Kapitel im Mega128 Reference Manual.
> > Es muÃ? noch mit Bit 3 der Interrupt enabled werden, und die unteren 2 Bits definieren, wann
> > der Interrupt ausgelöst wird.
> >
> > Gruss Peter
>
> Ah, verstehe, vielen Dank,
> Noch eine Frage:
> Hat der Befehl AComp immer einen Rückgabewert, mu� also z.B "x = AComp(0x0B)" geschrieben werden,
> oder kann der Befehl auch alleine stehen, z.B. "AComp(0x0B)", und beschreibt somit nur das
> ACSR-Register?
> Gruss Stefan
>

Wenn man nur AComp(0x0b) schreibt, wird der Rückgabewert einfach weggeschmissen. Das ist bei
fast allen Programmiersprachen so.

Gruss Peter


    Antwort schreiben


Antworten: