Frequenzerzeugung

 

Zur Frequenzerzeugung können Timer_0, Timer_1 und Timer_3 folgendermaßen eingesetzt werden:

 

Timer0 (8 Bit)

 

1. Beispiel:

 

// Rechtecksignal mit 10*1,085 µs = 10,85 µs Periodendauer

Timer_T0FRQ(10, PS0_8)

 

2. Beispiel: gepulste Frequenzblöcke (Projekt FRQ0)

 

void main(void)

{

    int delval;             // Variable für die Ein-/Ausschaltzeit

    delval=200;             // Wertzuweisung der Variablen delval

 

    Timer_T0FRQ(100,PS0_1024); // Der Timer wird auf die Frequenz

                               // Periode=138,9µs*100=13,9ms,Frequenz= 2Hz

    while (1)

    {

        AbsDelay(delval);        // Zeitverzögerung um 200ms

        Timer_T0Stop();          // Der Timer wird angehalten.

        AbsDelay(delval);        // Zeitverzögerung um 200ms

        Timer_T0Start(PS0_1024); // Der Timer wird mit dem Timer Prescaler

                                 // PS0_1024 eingeschaltet.

    }

}

 

Das Programm ist auf dem Mega128 nicht im USB Modus funktionsfähig, da der Ausgang PB4 im Zusammenhang mit dem USB Interface auf dem Application Board genutzt wird.

 

 

Timer1 (16 Bit)

 

Beispiel: Frequenzerzeugung mit 125 * 4,34 µs = 1085µs Periode

 

Timer_T1FRQ(125,PS_64);

 

 

Timer3 (16 Bit) (nur Mega128)

 

Beispiel: Frequenzerzeugung mit 10*1,085 µs =10,85 µs Periode und 2*1,085µs =2,17 µs Phasenverschiebung

 

Timer_T3FRQX(10,2,PS_8);