AComp Beispiel

 

Beispiel: Verwendung des Analog-Comparators

 

// AComp: Analog Comparator

// Mega32:  Eingang (+) PB2 (PortB.2) bzw. band gap reference 1,22V

//          Eingang (-) PB3 (PortB.3)

// Mega128: Eingang (+) PE2 (PortE.2) bzw. band gap reference 1,22V

//          Eingang (-) PE3 (PortE.3)

// erforderliche Library: IntFunc_Lib.cc

 

// Die Funktion AComp gibt den Wert des Komparators zurück.

// Ist die Spannung am Eingang PB2/PE2 größer als am Eingang PB3/PE3

// hat die Funktion AComp den Wert 1.

// Mode:

// 0x00  externe Eingänge (+)AIN0 und (-)AIN1 werden verwendet

// 0x40  externer Eingang (-)AIN1 und interne Referenzspannung

// 0x80  Analog-Comparator wird abgeschaltet

// Der Aufruf kann mit dem Parameter 0 (beide Eingänge werden

// verwendet) oder 0x40 (interne Referenzspannung am (+) Eingang,

// externer Eingang PB3/PE3) erfolgen.

 

 

//------------------------------------------------------------------------------

// Hauptprogramm

//

void main(void)

{

    while (true)

    {

        if (AComp(0x40)==1)         // Eingang (+) band gap reference 1,22V

        {

            Msg_WriteChar('1');     // Ausgabe: 1

        }

        else

        {

            Msg_WriteChar('0');     // Ausgabe: 0

        }

        // Der Komparator wird alle 500ms gelesen und ausgegeben

        AbsDelay(500);

    }

}