taking timing further chapter nine 9.1 – 9.8 dr. gheith abandah1
TRANSCRIPT
![Page 1: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/1.jpg)
Taking timing further
Chapter Nine9.1 – 9.8
Dr. Gheith Abandah 1
![Page 2: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/2.jpg)
Outline
• Timer 1• Timer 2• Capture/Compare/PWM• Pulse Width Modulation (PWM)• Digital to Analog Conversion (DAC)• Summary
Dr. Gheith Abandah 2
![Page 3: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/3.jpg)
Timing Issues
• Maintaining continuous counting functions• Recording (‘capturing’) in timer hardware the
time an event occurs• Triggering events at particular times• Generating repetitive time-based events• Measuring frequency, e.g., motor speed
Dr. Gheith Abandah 3
![Page 4: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/4.jpg)
The PIC 16 Series
Device Pins Features
16F84A 18 1 8-bit timer1 5-bit port1 8-bit port
16F873A16F876A
28 3 parallel ports,3 counter/timers,2 capture/compare/PWM,2 serial, 5 10-bit ADC, 2 comparators
16F874A16F877A
40 5 parallel ports,3 counter/timers,2 capture/compare/PWM,2 serial, 8 10-bit ADC, 2 comparators
Dr. Gheith Abandah 4
![Page 5: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/5.jpg)
PIC 16F84A Timer 0 Module
Dr. Gheith Abandah 5
![Page 6: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/6.jpg)
PIC 16F84A Timer 0 Module
Dr. Gheith Abandah 6
![Page 7: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/7.jpg)
Option Register
• T0CS: Clock source select• T0SE: Source edge select• PSA: Prescaler assignment bit• PS2:PS0: Prescaler rate select
Dr. Gheith Abandah 7
![Page 8: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/8.jpg)
PIC 16F87XA Timer 1 Module
Dr. Gheith Abandah 8
![Page 9: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/9.jpg)
Timer 1 Registers16-bit register:•TMR1L (0Eh)•TMR1H (0Fh)
Control Register: •T1CON (10h)
Dr. Gheith Abandah 9
![Page 10: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/10.jpg)
Timer 1 control register
• T1CKPS1:T1CKPS0: Input Clock Prescale Select, 1:1-1:8
• T1OSCEN: Oscillator Enable Control• T1SYNC’: External Clock Input Synchronization
Control• TMR1CS: Clock Source Select• TMR1ON: Timer1 On
Dr. Gheith Abandah 10
![Page 11: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/11.jpg)
Derbot odometer
• Timers 0 and 1 are used to count pulses generated by the optical sensors mounted on the shaft encoders.
• The program drives the Derbot forward for 1m. It then completes a 180◦ turn on the spot and runs forward for 1m again. The program loops continuously in this manner.
Dr. Gheith Abandah 11
![Page 12: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/12.jpg)
Derbot odometer circuit
Dr. Gheith Abandah 12
![Page 13: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/13.jpg)
Odometer Example – Page 1
;Initialization
movlw B'01000100' ;set port A for right
movwf adcon1 ;analog/digital mix
movlw B'11101000' ;T0: external input,
movwf option_reg ;low to high transition,
;no prescale
movlw B'00000011' ;T1: no prescale,
movwf t1con ;oscillator disabled,
;external sync input
Dr. Gheith Abandah 13
![Page 14: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/14.jpg)
Odometer Example – Page 2
opto_move
clrf tmr0 ;clear timers
clrf tmr1l
clrf tmr1h
clrf flags
btfss portc,0 ;increment T1 if ip is zero,
incf tmr1l ;as 1st rising edge isn’t
;detected
call leftmot_fwd ;start motors running
call rtmot_fwdDr. Gheith Abandah 14
Because the counter must first have a falling edge before it starts to count.
![Page 15: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/15.jpg)
Odometer Example – Page 3
opto_loop
movlw D'91' ;test for 1m
subwf tmr0,0
btfsc status,z
bcf porta,mot_en_left ;disable motor if =
movlw D'91'
subwf tmr1l,0
btfsc status,z
bcf porta,mot_en_rt ;disable motor if =
…
goto opto_loopDr. Gheith Abandah 15
![Page 16: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/16.jpg)
Generating a ‘clock tick’ – a repetitive interrupt stream
Dr. Gheith Abandah 16
![Page 17: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/17.jpg)
Example: ‘clock tick’ generation
• Assuming an oscillator frequency of 4MHz, what is the slowest ‘clock tick’ rate that can be obtained from Timer 0 and Timer 1?
• T0: slowest interrupt rate with prescaler ÷256.• The input frequency to T0 is 1 MHz/256, or
3.906 kHz.• The 8-bit timer divides this frequency by 256 to
produce the clock tick frequency, which will be 3.906 kHz/256, or 15.26 Hz.
Dr. Gheith Abandah 17
![Page 18: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/18.jpg)
Example: ‘clock tick’ generation
• T1: slowest interrupt rate with prescaler ÷8.• The input frequency to T1 is 1 MHz/8, or 125
kHz.• The 16-bit timer divides this frequency by 216
to produce the clock tick frequency, which will be 125 kHz/ 216, or 1.91 Hz.
Dr. Gheith Abandah 18
![Page 19: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/19.jpg)
PIC 16F87XA Timer 2 Module
Dr. Gheith Abandah 19
![Page 20: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/20.jpg)
Timer 2 Registers8-bit register:•TMR2 (11h)
Control Register: •T2CON (12h)•PR2 (92h), period register
Dr. Gheith Abandah 20
![Page 21: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/21.jpg)
Timer 2 control register
• TOUTPS3:TOUTPS0: Output Postscale Select, 1:1-1:16
• TMR2ON: Timer 2 On• T2CKPS1:T2CKPS0: Clock Prescale Select, 1:1,
1:4, 1:16
Dr. Gheith Abandah 21
![Page 22: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/22.jpg)
The PR2 register, comparator and postscaler
Dr. Gheith Abandah 22
![Page 23: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/23.jpg)
Example: Timer 2 interrupt rate• Assuming an oscillator frequency of 4MHz, what is
the slowest ‘clock tick’ rate that can be obtained from Timer 2?
• Slowest interrupt rate with prescaler ÷16 and postscaler ÷16 .
• The input frequency is 1 MHz/16, or 62.5 kHz.• If PR2 is preset to 255, the frequency is divided by 256
to produce the reset frequency, which will be 62.5 kHz/256, or 244.14 Hz.
• With postscaler of 16, then the interrupt frequency will be 15.26 Hz.
Dr. Gheith Abandah 23
![Page 24: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/24.jpg)
The capture/compare/PWM (CCP) modules
Dr. Gheith Abandah 24
• 2 CCP modules• Each CCP module contains a 16-bit register
which can operate as a:1. 16-bit Capture register2. 16-bit Compare register3. Pulse width modulation Master/Slave Duty Cycle
register
![Page 25: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/25.jpg)
CCP Registers16-bit register:•CCPR1L (15h)•CCPR1H (16h)•CCPR2L (1bh)•CCPR2H (1ch)
Control Register: •CCP1CON (17h)•CCP2CON (1dh)
Dr. Gheith Abandah 25
![Page 26: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/26.jpg)
CCP x control register
Dr. Gheith Abandah 26
• CCPxX:CCPxY: PWM Least Significant bits• CCPxM3:CCPxM0: Mode Select bits
![Page 27: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/27.jpg)
CCPx Mode Select bits
Dr. Gheith Abandah 27
![Page 28: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/28.jpg)
Capture mode
Dr. Gheith Abandah 28
![Page 29: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/29.jpg)
Compare mode
Dr. Gheith Abandah 29
![Page 30: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/30.jpg)
Pulse width modulation
Dr. Gheith Abandah 30
Time constant small compared to ‘on’ time.
The current rises from 10 to 90% of its final value in time 2.2L/R
![Page 31: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/31.jpg)
Pulse width modulation
Dr. Gheith Abandah 31
Time constant large compared to ‘on’ time, wide pulse
Time constant large compared to ‘on’ time,
narrow pulse.
![Page 32: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/32.jpg)
PWM mode
Note 1: The 8-bit timer is concatenated with 2-bit internal Q clock, or 2 bits of the prescaler, to create 10-bit time base.
Dr. Gheith Abandah 32
![Page 33: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/33.jpg)
Waveforms for the 16F873A PWM generator
Dr. Gheith Abandah 33
![Page 34: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/34.jpg)
Calculations
T = (PR2 + 1) × (Timer 2 input clock period)= (PR2 + 1) × {Tosc × 4 × (Timer 2 prescale value)}
ton = (pulse width register) × (PWM timer input clock period),
= (pulse width register) × {Tosc × (Timer 2 prescale value)}
pulse width register = CCPR1L | CCP1CON<5:4> + 1
Dr. Gheith Abandah 34
![Page 35: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/35.jpg)
Example
PR2 is loaded with 249D. The clock oscillator frequency is 4 MHz. Neither pre- nor postscale. Find the PWM period.
T = (PR2 + 1) × {Tosc × 4 × (Timer 2 prescale value)}
= 250 × (250 ns × 4 × 1)= 250 μs
i.e. PWM frequency = 4.00 kHz.
Dr. Gheith Abandah 35
![Page 36: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/36.jpg)
PWM applied in the Derbot for motor control
Dr. Gheith Abandah 36
![Page 37: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/37.jpg)
Example waveforms
Dr. Gheith Abandah 37
![Page 38: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/38.jpg)
Derbot Motor Example – Page 1
;set up PWM
movlw B'00000100' ;switch on Timer2,
movwf t2con ;no pre or postscale
movlw B'00001100' ;enable PWM
movwf ccp1con
movwf ccp2con
movlw 0f9 ;249
movwf pr2
...
Dr. Gheith Abandah 38
![Page 39: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/39.jpg)
Derbot Motor Example – Page 2
leftmot_fwd ;run left motor forward
bsf porta,mot_en_left
movlw D'176'
movwf CCPR2L
return
leftmot_rev ;run left motor backward
bsf porta,mot_en_left
movlw D'80'
movwf CCPR2L
returnDr. Gheith Abandah 39
![Page 40: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/40.jpg)
Generating PWM in software
• May use up all PWM resources or don’t have them in a low-cost microcontroller.
• PWM outputs can be generated based on software delay loops only.
• PWM outputs can also be generated based on timer interrupts.
Dr. Gheith Abandah 40
![Page 41: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/41.jpg)
Generating PWM with timer interrupt
Dr. Gheith Abandah 41
![Page 42: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/42.jpg)
cblock assembler directive
cblock 20
var1 ;reserve 1 byte for var1
var2 ;reserve 1 byte for var2
…
endc
Dr. Gheith Abandah 42
![Page 43: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/43.jpg)
PWM used for digital-to-analog conversion (DAC)
Dr. Gheith Abandah 43
![Page 44: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/44.jpg)
RC low-pass filter characteristics
Dr. Gheith Abandah 44
![Page 45: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/45.jpg)
Derbot Example
Dr. Gheith Abandah 45
fc = 1/(2π*100nF* 20kΩ) = 80 Hz
![Page 46: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/46.jpg)
Generating a sine wave
Dr. Gheith Abandah 46
![Page 47: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/47.jpg)
Lower: the PWM stream.Upper: detail of analog output
Dr. Gheith Abandah 47
T = 250 μsf = 4 kHz
![Page 48: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/48.jpg)
Sine wave example – Page 1
clrf pointer
sin_loop
movf pointer,w
call sin_table ;get most significant byte
movwf ccpr1l ;move it to the PWM output
incf pointer,f ;increment the pointer
movf pointer,w
call sin_table ;get the MS byte
andlw B'11000000' ;we only use ms 2 bits
Dr. Gheith Abandah 48
![Page 49: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/49.jpg)
Sine wave example – Page 2
movwf temp
bcf status,c ;adjust for CCP1CON
rrf temp,f
rrf temp,w
iorlw B'00001100' ;set some CCP1CON bits
movwf ccp1con
incf pointer,f
movf pointer,w
…
call delay1
goto sin_loopDr. Gheith Abandah 49
![Page 50: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/50.jpg)
Weaknesses of this method
• The output analog voltage is directly dependent on the logic levels of the PWM stream. These in turn are dependent on the accuracy of the power supply voltage.
• The low-pass filter cannot generate fast-changing signals..
• Running the PWM faster decreases the resolution.• There will always be some residual ripple on the
analog output.
Dr. Gheith Abandah 50
![Page 51: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/51.jpg)
Frequency measurement
Dr. Gheith Abandah 51
Both a counter and a timer are needed, the timer to measure the reference period of time and the counter to count the number of events within that time.
![Page 52: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/52.jpg)
Derbot speed measurement program
Dr. Gheith Abandah 52
![Page 53: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/53.jpg)
Speed measurement example – Page 1
Timer2_Int
decfsz int_cntr
goto int_end
;here if making a measurement
movf tmr0,w ;save counter values
movwf tmr0_temp
movf tmr1l,w
movwf tmr1_temp
clrf tmr0 ;clear counters
clrf tmr1l
Dr. Gheith Abandah 53
![Page 54: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/54.jpg)
Speed measurement example – Page 1
btfss portc,0 ;inc T1 if = 0, as first
incf tmr1l ;rising edge won’t be seen
movlw D'250' ;reload interrupt counter
movwf int_cntr
int_end
bcf pir1,tmr2if
retfie
Dr. Gheith Abandah 54
![Page 55: Taking timing further Chapter Nine 9.1 – 9.8 Dr. Gheith Abandah1](https://reader031.vdocuments.net/reader031/viewer/2022032310/56649d6e5503460f94a4fda3/html5/thumbnails/55.jpg)
Summary• Timing is an essential element of embedded system design –
both in its own right and to enable other embedded activities, like serial communication and pulse width modulation.
• A range of timers is available, with clever add-on facilities which extend their capability to capture, compare, create repetitive interrupts or generate PWM pulse streams.
• In applications of any complexity, a microcontroller is likely to have several timers running simultaneously, for quite different and possibly conflicting applications. The question remains open at this stage: how can these different time-based activities be marshaled and harmonized?
Dr. Gheith Abandah 55