User manual
166
pulse(n); / / n pulsen genereren
count=Timer T0GetCNT();
Bij de Mega128 kan vanwege de hardware Timer_0 niet als teller gebruikt worden.
Timer1(16 Bit)
/ / Voorbeeld: pulstelling met CNT1
Timer T1CNT();
pulse(n); / / n pulsen genereren
count=Timer T1GetCNT();
5.4.18.2 Produceren van frequenties
Voor het produceren van frequenties kunnen Timer_0 en Timer_1 als volgt gebruikt worden:
Timer0 (8 Bit)
1
e
voorbeeld:
Timer_T0FRQ(10, ps_8) / / Rechthoeksignaal met 10*1,085
µ
s = 10,85
µ
s periodeduur
2
e
voorbeeld: gepulste frequentieblokken
(project FRQ0)
void main(void)
{
int delval; // Variable v.d. in-/uitschakeltijd
delval=200; // Waarde toewijzing variablen delval
Timer_T0FRQ(100,PS0_1024); // De timer wordt op de frequentie
// Periode=138,9 µs*100=13,9 ms,
Frequenz= 72Hz
while (1)
{
AbsDelay(delval); // tijdvertraging 200ms
Timer_T0Stop(); // De timer wordt gestopt.
AbsDelay(delval); // Tijdvertraging 200ms
Timer_T0Start(PS0_1024);// De timer wordt met de timer
// Prescaler PS0_1024 eingeschaltet.
}
}
Het programma kan op de Mega128 niet in de USB- modus werken omdat de uitgang
PB4 in samenhang met de USB interface op het apllication board gebruikt wordt.
Timer1 (16 Bit)
1
e
voorbeeld:
produceren van frequenties met 125*4,34
µ
µµ
µ
s = 1085
µ
µµ
µ
s periode
Timer_T1FRQ(125,ps_64);
2
e
voorbeeld: produceren van frequenties met 10*1,085 µ
µµ
µs = 10,85 µ
µµ
µs periode en
2*1,085µ
µµ
µs = 2,17 µ
µµ
µs faseverschuiving
Timer_T1FRQX(10,2,ps_8);