pulse(n);
/ /
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);
/ /
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)
e
1
voorbeeld:
Timer_T0FRQ(10, ps_8)
e
2
voorbeeld: gepulste frequentieblokken
void main(void)
{
int delval;
delval=200;
Timer_T0FRQ(100,PS0_1024);
while (1)
{
AbsDelay(delval);
Timer_T0Stop();
AbsDelay(delval);
Timer_T0Start(PS0_1024);// De timer wordt met de timer
}
}
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)
e
1
voorbeeld: produceren van frequenties met 125*4,34µ µ µ µ s = 1085µ µ µ µ s periode
Timer_T1FRQ(125,ps_64);
e
voorbeeld: produceren van frequenties met 10*1,085 µ µ µ µ s = 10,85 µ µ µ µ s periode en
2
2*1,085µ µ µ µ s = 2,17 µ µ µ µ s faseverschuiving
Timer_T1FRQX(10,2,ps_8);
166
n pulsen genereren
n pulsen genereren
/ / Rechthoeksignaal met 10*1,085
(project FRQ0)
// Variable v.d. in-/uitschakeltijd
// Waarde toewijzing variablen delval
// De timer wordt op de frequentie
// Periode=138,9 µs*100=13,9 ms,
Frequenz= 72Hz
// tijdvertraging 200ms
// De timer wordt gestopt.
// Tijdvertraging 200ms
// Prescaler PS0_1024 eingeschaltet.
µ
µ
s = 10,85
s periodeduur