User manual

105
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);
5.3.16.3 Pulsbreedte –modulatie
Er staan voor de pulsbreedte –modulatie twee timers tot uw beschikking: Timer_0 met 8 Bit
en Timer_1 met 16 Bit. Met een pulsbreedte –modulatie kunt u heel gemakkelijk een digitaal
–analoog –omvormer realiseren.
Timer0 (8 Bit)
Voorbeeld: Pulsbreedte –modulatie met 138,9µ
µµ
µs periode en 5,42 µ
µµ
µs pulsbreedte, veranderd
naar 10,84 µ
µµ
µs pulsbreedte
Timer_T0PWM(10,2)
;
/ / Puls: 10*542,5 ns = 5,42
µ
s, periode: 256*542,5 ns = 138,9
µ
s
Timer_T0PW(20); / / Puls: 20*542,5 ns = 10,84
µ
s
Timer1 (16 Bit)
Voorbeeld: pulsbreedte –modulatie met 6,4 ms periode en 1,28 ms pulsbreedte kanaal A en
640
µ
µµ
µ
s pulsbreedte kanaal B
Timer_T0PWMX(10,20,10,ps_1024)
;
/ / Periode: 100*69,44
µ
s = 6,94 ms
/ / PulsA: 20*69,44
µ
s = 1,389 ms
/ / PulsB: 10*69,44
µ
s = 694,4
µ
s
5.3.16.4 Timerfuncties
Er staan twee onafhankelijke timers tot uw beschikking: Timer_0 met 8 bit en Timer_1 met
16 Bit. De timers beschikken over een programmeerbare voordeler, zie tabel. Met de timer
kunt u een tijd vastleggen, nadat een interrupt getriggerd is. In de interrupt -routine kunnen
dan verschillende bewerkingsstappen uitgevoerd worden.
Timer T0Time (8 Bit)
Voorbeeld: Timer0: uitgang met een vertraging van 6,94 ms (100x69,44 µ
µµ
µs, zie tabel)
inschakelen
Void Timer0_ISR(void)
{
int irqcnt;
Port _WriteBit(0,1);
Timer T0Stop(); / / Timer0 stoppen
irqcnt=Irq_GetCount(INT_TIM0COMP);
}
void main(void)
{
Port _DataDirBit(0,0); / / PortA.0 uitgang