dasar avr timer
TRANSCRIPT
-
8/16/2019 dasar AVR Timer
1/45
IMER
CLOCKI
B 2 ( CN)
CN
BOTTOM > TOP
•T TCNT 1
• TCNT TOP BOTTOM ()
• F , .
-
8/16/2019 dasar AVR Timer
2/45
OPCN0 (8 )
255
(1111 1111)
OVERFLOW
FLAG
TOV=1
BOOM=0
(0000 0000)
255
-
8/16/2019 dasar AVR Timer
3/45
MODE F IMER
•M :
, , .
•M PM : DC
•M I C :
, , .
•M CC :
-
8/16/2019 dasar AVR Timer
4/45
K IMER
•J 1 1 A2313 = 3 (0, 1 )
A 16 = 4 (0, 1, 2 )
A128 = 5 (0 4 )
•L (CN) 0 2 = 8
1 3 = 16
•M M 0 2
M 1 3
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
07
-
8/16/2019 dasar AVR Timer
5/45
3. 0 M PM
1. 0 M N2. 0
4. 0 M CC
5. 1 M I C
-
8/16/2019 dasar AVR Timer
6/45
1. IMER0
255255
TOV=1 TOV=1 TOV=1
255
0
CN0
TOV=0 TOV=0
1/1
1/8
1/64
1/128
1/1024
11.059.200 HTOV=1
CN0(8 )
P
B>255I
11059200
1382.400
172.800
43.200
10.800
-
8/16/2019 dasar AVR Timer
7/45
S CS02:CS01:CS00
T 000
1/1 001
1/8 010
1/64 011
1/256 100
1/1024 101
E T0
110
REGISER CCR0
REGISER REGISER PADA IMER 0
0 WGM
00
WGM
01 CS02 CS01 CS00
O0
REGISER IFR ( )
OEI0
REGISER IMSK
0255CN0
T0
-
8/16/2019 dasar AVR Timer
8/45
CN0
P 0
TOV
255
1
F = 10.800 HT1 = 0.0000926
0TOV=1
= JMLAH CLOCK 1
= 255 0.0000926 DEIK = 0.0236 DEIK
-
8/16/2019 dasar AVR Timer
9/45
F = 10.800 HT1 = 0.0000926 55
CN0TOV
1
M 0 0
CN0
BOTTOM=55 = (25555) 1
= 200 0.0000926 DEIK
= 0.01852 DEIKBOTTOM= 0
= (OPBOOM) 1
= (2550) 1
= 255 0.0000926 DEIK
= 0.0236 DEIK
-
8/16/2019 dasar AVR Timer
10/45
C P 0 = 0.01852
10800
B ?B BOOM/ CN0?
P 0 = 1
T1 = 1/10800 = 0 .0000926
= 0.01852 /0 .0000926
=
TCNT0=?
= 0.01852
TOP
0
CN0
255
37
JUMLAH CLOCK = TOP BOTTOM
BOTTOM = TOP JUMLAH CLOCK
= 255 200 = 55
ICN0 ()
0.01852
55
0
-
8/16/2019 dasar AVR Timer
11/45
0
1. / CN0 .
2. E ( OEI0=1, IMSK)
3. ( 0,1,2, CCR0)
4. / /ISR .
()
• M 0
CCR0 = 0;
• M 0( 2 1 0
)
CCR0 =00000 0101; // 005;
-
8/16/2019 dasar AVR Timer
12/45
0
P IDE
-
8/16/2019 dasar AVR Timer
13/45
2. 0
S CS02:CS01:CS00
T 000
1/1 001
1/8 010
REGISER CCR0 PADA IMER 0
0 0 CS02 CS01 CS00
1/256 100
1/1024 101
T0 110
T0 111
000CN0
T0
-
8/16/2019 dasar AVR Timer
14/45
0
255 255 255
O=1 O=2 O=3
TCNT0
J = TCNT0 + ( * 255)
-
8/16/2019 dasar AVR Timer
15/45
0
1. 0 .
2. E ( OEI0=1, IMSK)
3. S B/ CN0 = 0
4. 0 ( 0,1,2, CCR0)
5. I ISR 0
()
5. J T0 = TCNT0 + ( * 255)
-
8/16/2019 dasar AVR Timer
16/45
#
=0;
// T 0
TIM0OVF 0()
= + 1;
()
DDRA= 0FF; //PORTA SEBAGAI OUTPUT
DDRC=0FF; //PORTC SEBAGAI OUTPUT
// T/C 0
// C : T0 R E
// M: N =FF
TCCR0=007;
TCNT0=000;
// T()/C() I()
TIMSK=001;
// G
#("")
(1)
PORTC = TCNT0
PORTA = ;
;
-
8/16/2019 dasar AVR Timer
17/45
5. 1 M I C
= ?
PIN ICP1
-
8/16/2019 dasar AVR Timer
18/45
-
8/16/2019 dasar AVR Timer
19/45
CARA KERJA INP CAPRE
•TIMER1 DISET MENCACAH MODE NORMAL•INTERUPSI INPUT CAPTURE DIAKTIFKAN/ENABLE
•TIMER 1 DIAKTIFKAN DGN MENETAPKAN SUMBER CLOCK
•TCNT1 TERUS BERGULIR INCREMENT DAN RESET KETIKA NILAI MA
•
KETIKA ADA PERUBAHAN SINAL DI PIN ICP1 ,MENEBABKAN INTERUPSIINPUT CAPTURE
•ISI TCNT1 SAAT ITU DICOP KE REG ICR1
INISIALISASI
TIMER1
ICR1
TCNT1
•
•KETIKA ADA PERUBAHAN SINALBERIKUTNA KEMBALI
TERJADI INTERUPSI INPUT CAPTURE , BACA ICR1
•SELISIH DATA ICR1 SAAT INI DGN ICR1 G DISIMPAN
SEBELUMNA ADALAH PERIODE PULSA
ICR1
TCNT1
-
8/16/2019 dasar AVR Timer
20/45
65.536 65.536 65.536
TCNT1
16
P INP CAPRE CN1
0
-
8/16/2019 dasar AVR Timer
21/45
65.536
TCNT1
ICR1 = TCNT1 ICR1 = TCNT1
0
-
8/16/2019 dasar AVR Timer
22/45
65.536
TCNT1
ICR1 = TCNT1 ICR1 = TCNT1
0
500
P :
=4500 500
= 4000
-
8/16/2019 dasar AVR Timer
23/45
65.536
T
TCNT1
64536 1200 J ICR1 CN1
=1 =2=0
1200
1000
P :
=1200 1000
= 200
65,736
-
8/16/2019 dasar AVR Timer
24/45
65.536
65.536
T
TCNT1
=1 =1=0
1200
1000
ICR1 = TCNT1
ICR1= ICR1
= ICR + (65.536 * ) = ICR
I =
ICR1 = TCNT1
ICR1= ICR1
= ICR + (65.536 * ) = ICR
I =
T = 1200 +(65.536*1) 1000 =
-
8/16/2019 dasar AVR Timer
25/45
ICR1
TCNT1
ICR1
TCNT1TOV TOV065536 065536
CARA KERJA INP CAPRE
++ ++
PIN
ICP1
INTCAPT
-
8/16/2019 dasar AVR Timer
26/45
REGISER CCR1A
COM1A1 COM1A0 GM11 GM10
ICIE1 OEI1
REGISER IMSK 07
REGISER CCR1B
ICNC1 ICES1 GM13 GM12 CS12 CS11 CS10
1= N C
1= ICP
P S TCNT0 N
-
8/16/2019 dasar AVR Timer
27/45
REGISER CN1 REGISER ICR1
ICR1H0
7
7
0
7CN1H
CN1L
07
0 0 0 0 1 0 1 1
1 1 1 1 1 0 1 1
G 8
ICR1LICR1H
0 0 0 0 1 0 1 1
1 1 1 1 1 0 1 1
-
8/16/2019 dasar AVR Timer
28/45
IM1CAP 1()
ICR1S = (ICR1H
-
8/16/2019 dasar AVR Timer
29/45
#
;
S, S; C;
/*T 1 ISR*/
TIM1OVF 1()
++;
/*T 1 ISR*/
S = (CR1H
-
8/16/2019 dasar AVR Timer
30/45
()
TCCR1A = 0; /* */
TCCR1B = 0C2;/*T 1 /8, */
TIMSK = 024; /* 1 */
#() /* */
(1)
; /* */
-
8/16/2019 dasar AVR Timer
31/45
3. 0 M PM
20%
50%
80%
-
8/16/2019 dasar AVR Timer
32/45
0
-
8/16/2019 dasar AVR Timer
33/45
0 WGM
00
01
C
00
WGMCS02 CS01 CS00
S CS02:CS01:CS00
T 000
1/1 001
1/8 010
1/64 011
1/256 100
1/1024 101
E T0
110
REGISER CCR0
0 1 1 0 1 0 1 1
C CCR0 PM
0 WGM
00
01
C
00
WGM
01 CS02 CS01 CS00
-
8/16/2019 dasar AVR Timer
34/45
OCR OCR OCR
255
CN0
80%
MOTOR DC
-
8/16/2019 dasar AVR Timer
35/45
255
CN0
OCR
30%
MOTOR DC
-
8/16/2019 dasar AVR Timer
36/45
255
CN0
OCR OCR OCR
10%
MOTOR DC
-
8/16/2019 dasar AVR Timer
37/45
PWM :
N (1, 8, 64, 256, 1024).
D = OCR
256
100
-
8/16/2019 dasar AVR Timer
38/45
C 0 M PM
#
# PM (PINA & 3)
()
DDRA=000;
PORA = 003; /* */
PORB=000;DDRB=008; /*OC0 */
CCR0=06B;
(1)
PA0
PA5
PA7
PA1
PA2
PA3
PA4
PA6
PB0
PB5
PB7
PB1
PB2
PB3 (OC0)
PB4
PB6
PWM
OUTPUT
(PM)
0: OCR0=25; /*10 % */
;
1: OCR0=76; /*30% */
;
2: OCR0=128; /*50% */;
3: OCR0=204; /*80% */
;
:
;
PC0
PC7
PC2
PC6
PC5
PC4
PC3
PC1
PC7
PD0
PA5
PD1
PD2
PD3
PD4
PD6
GND
C 1 M PM
-
8/16/2019 dasar AVR Timer
39/45
#
# PM (PINA & 3) ()
PORA = 003; /* */
DDRD = 020; /*OC1A */
CCR1A = 091;/* A /CCR1B = 002; /* / 8 */
(1)
PA0
PA5
PA7
PA1
PA2
PA3
PA4
PA6
C 1 M PM
(PM)
0: OCR1A = 25; /*10 % */
;
1: OCR1A = 51; /*20% */
;
2: OCR1A = 76; /*30% */
;
3: OCR1A = 102; /*40% */
;
:
PD0
PD5 (OC1A)
PD1
PD2
PD3
PD4
PD6
PWM
OUTPUT
-
8/16/2019 dasar AVR Timer
40/45
4. 0 M CC
(F )
-
8/16/2019 dasar AVR Timer
41/45
OCR OCR OCR
TOP = OCR
255
CN0
PERIODE = 2 * OCR * 1FREKWENSI = F
2*N * (1 + OCR)
N = (1, 8, 64, 256, 1024).
OCR = F1/2F
C = 26 H
-
8/16/2019 dasar AVR Timer
42/45
TOP = OCR0CN0
() 10.800
B OCR0 ?
OCR = F1/2F
OCR = 10800/2*26 = 54
OCR0 OCR0 OCR0 OCR0 OCR0 OCR0255
6 (1)
-
8/16/2019 dasar AVR Timer
43/45
#
# CC (PINA & 3)
()
DDRA=000;
PORA = 003; /* */
PORB=000;
DDRB=008;
CCR0=01D;
(PM)
0: OCR0=25; //207H
;
1: OCR0=76; //70H
;
2: OCR0=128; //41H;
3: OCR0=204; //26H
;
CN0=000;
OCR0=05;
:
;
-
8/16/2019 dasar AVR Timer
44/45
PA0
PA5
PA7
PA1
PA2
PA3
PA4
PA6
PB0
PB5
PB7
PB1
PB2
PB3 (OC0)
PB4
PB6
CTC
OUTPUT
PC0
PC7
PC2
PC6
PC5
PC4
PC3
PC1
PC7
PD0
PA5
PD1
PD2
PD3
PD4
PD6
GND
AVCC
-
8/16/2019 dasar AVR Timer
45/45