본문 바로가기
Embedded System/AVR

[AVR] CTC 비교매치 모드 인터럽트

by goatlab 2022. 6. 9.
728x90
반응형
SMALL

CTC 비교매치 모드 인터럽트

 


코드비젼 (CVAVR)은 인터럽트용 헤더파일이 별도로 필요하지 않지만 AVRstudio는 #include <avr/interrupt.h> 인터럽트 헤더파일을 추가 해야 한다.

OCR0로 설정하고 인터럽트는 오버플로우 인터럽트를 사용해도 된다. 특히, 긴 주기를 얻기 위해서 Phase Correct PWM Mode를 사용하는 경우에 TCNT0의 증가와 감소에서 OCR0=TCNT0가 2번 만나게 되는데 이렇게 되면 두번 OCF0가 발생 하므로 긴 주기를 얻지 못한다 (OCR0=0xFF와 OCR0=0x00은 1번). 오버플로우 인터럽트는 BOTTOM에서 한 번만 발생하므로 오버플로우 인터럽트를 사용하면 된다.

TCNT0를 Reload 하지 않아서 (Auto Reload) 누적오차가 없으므로 시계 등의 정확한 시간을 만들 때 유용하다.

비교매치 인터럽트의 OCR0 설정 (1+OCR0)은 오버플로우 인터럽트 TCNT0 설정 (256-TCNT0)에 비해서 간단하며 TCNT0를 Reload하지 않아도 되고 누적오차가 없다.

interrupt [TIM0_COMP] void timer0_comp_isr(void){} // 코드비젼용 타이머0 비교매치 인터럽트 함수
ISR(TIMER0_COMP_vect){} // AVRstudio용 타이머0 비교매치 인터럽트 함수

 

인터럽트 주기

 

CTC 비교 매치 모드에서 OCR0 값에 따른 인터럽트 주기이다 (단위 us). 16000000Hz(X-TAL) / 분주비 / (1+OCR0) = 인터럽트 주기가 된다.

16000000MHz 1분주 8분주 32분주 64분주 128분주 256분주 1024분주
OCR0 0.0625us 0.5us 2us 4us 8us 16us 64us
0 0.0625 0.5 2 4 8 16 64
1 0.125 1 4 8 16 32 128
2 0.1875 1.5 6 12 24 48 192
3 0.25 2 8 16 32 64 256
4 0.3125 2.5 10 20 40 80 320
5 0.375 3 12 24 48 96 384
6 0.4375 3.5 14 28 56 112 448
7 0.5 4 16 32 64 128 512
8 0.5625 4.5 18 36 72 144 576
9 0.625 5 20 40 80 160 640
10 0.6875 5.5 22 44 88 176 704
11 0.75 6 24 48 96 192 768
12 0.8125 6.5 26 52 104 208 832
13 0.875 7 28 56 112 224 896
14 0.9375 7.5 30 60 120 240 960
15 1 8 32 64 128 256 1024
16 1.0625 8.5 34 68 136 272 1088
17 1.125 9 36 72 144 288 1152
18 1.1875 9.5 38 76 152 304 1216
19 1.25 10 40 80 160 320 1280
20 1.3125 10.5 42 84 168 336 1344
21 1.375 11 44 88 176 352 1408
22 1.4375 11.5 46 92 184 368 1472
23 1.5 12 48 96 192 384 1536
24 1.5625 12.5 50 100 200 400 1600
25 1.625 13 52 104 208 416 1664
26 1.6875 13.5 54 108 216 432 1728
27 1.75 14 56 112 224 448 1792
28 1.8125 14.5 58 116 232 464 1856
29 1.875 15 60 120 240 480 1920
30 1.9375 15.5 62 124 248 496 1984
31 2 16 64 128 256 512 2048
32 2.0625 16.5 66 132 264 528 2112
33 2.125 17 68 136 272 544 2176
34 2.1875 17.5 70 140 280 560 2240
35 2.25 18 72 144 288 576 2304
36 2.3125 18.5 74 148 296 592 2368
37 2.375 19 76 152 304 608 2432
38 2.4375 19.5 78 156 312 624 2496
39 2.5 20 80 160 320 640 2560
40 2.5625 20.5 82 164 328 656 2624
41 2.625 21 84 168 336 672 2688
42 2.6875 21.5 86 172 344 688 2752
43 2.75 22 88 176 352 704 2816
44 2.8125 22.5 90 180 360 720 2880
45 2.875 23 92 184 368 736 2944
46 2.9375 23.5 94 188 376 752 3008
47 3 24 96 192 384 768 3072
48 3.0625 24.5 98 196 392 784 3136
49 3.125 25 100 200 400 800 3200
50 3.1875 25.5 102 204 408 816 3264
51 3.25 26 104 208 416 832 3328
52 3.3125 26.5 106 212 424 848 3392
53 3.375 27 108 216 432 864 3456
54 3.4375 27.5 110 220 440 880 3520
55 3.5 28 112 224 448 896 3584
56 3.5625 28.5 114 228 456 912 3648
57 3.625 29 116 232 464 928 3712
58 3.6875 29.5 118 236 472 944 3776
59 3.75 30 120 240 480 960 3840
60 3.8125 30.5 122 244 488 976 3904
61 3.875 31 124 248 496 992 3968
62 3.9375 31.5 126 252 504 1008 4032
63 4 32 128 256 512 1024 4096
64 4.0625 32.5 130 260 520 1040 4160
65 4.125 33 132 264 528 1056 4224
66 4.1875 33.5 134 268 536 1072 4288
67 4.25 34 136 272 544 1088 4352
68 4.3125 34.5 138 276 552 1104 4416
69 4.375 35 140 280 560 1120 4480
70 4.4375 35.5 142 284 568 1136 4544
71 4.5 36 144 288 576 1152 4608
72 4.5625 36.5 146 292 584 1168 4672
73 4.625 37 148 296 592 1184 4736
74 4.6875 37.5 150 300 600 1200 4800
75 4.75 38 152 304 608 1216 4864
76 4.8125 38.5 154 308 616 1232 4928
77 4.875 39 156 312 624 1248 4992
78 4.9375 39.5 158 316 632 1264 5056
79 5 40 160 320 640 1280 5120
80 5.0625 40.5 162 324 648 1296 5184
81 5.125 41 164 328 656 1312 5248
82 5.1875 41.5 166 332 664 1328 5312
83 5.25 42 168 336 672 1344 5376
84 5.3125 42.5 170 340 680 1360 5440
85 5.375 43 172 344 688 1376 5504
86 5.4375 43.5 174 348 696 1392 5568
87 5.5 44 176 352 704 1408 5632
88 5.5625 44.5 178 356 712 1424 5696
89 5.625 45 180 360 720 1440 5760
90 5.6875 45.5 182 364 728 1456 5824
91 5.75 46 184 368 736 1472 5888
92 5.8125 46.5 186 372 744 1488 5952
93 5.875 47 188 376 752 1504 6016
94 5.9375 47.5 190 380 760 1520 6080
95 6 48 192 384 768 1536 6144
96 6.0625 48.5 194 388 776 1552 6208
97 6.125 49 196 392 784 1568 6272
98 6.1875 49.5 198 396 792 1584 6336
99 6.25 50 200 400 800 1600 6400
100 6.3125 50.5 202 404 808 1616 6464
101 6.375 51 204 408 816 1632 6528
102 6.4375 51.5 206 412 824 1648 6592
103 6.5 52 208 416 832 1664 6656
104 6.5625 52.5 210 420 840 1680 6720
105 6.625 53 212 424 848 1696 6784
106 6.6875 53.5 214 428 856 1712 6848
107 6.75 54 216 432 864 1728 6912
108 6.8125 54.5 218 436 872 1744 6976
109 6.875 55 220 440 880 1760 7040
110 6.9375 55.5 222 444 888 1776 7104
111 7 56 224 448 896 1792 7168
112 7.0625 56.5 226 452 904 1808 7232
113 7.125 57 228 456 912 1824 7296
114 7.1875 57.5 230 460 920 1840 7360
115 7.25 58 232 464 928 1856 7424
116 7.3125 58.5 234 468 936 1872 7488
117 7.375 59 236 472 944 1888 7552
118 7.4375 59.5 238 476 952 1904 7616
119 7.5 60 240 480 960 1920 7680
120 7.5625 60.5 242 484 968 1936 7744
121 7.625 61 244 488 976 1952 7808
122 7.6875 61.5 246 492 984 1968 7872
123 7.75 62 248 496 992 1984 7936
124 7.8125 62.5 250 500 1000 2000 8000
125 7.875 63 252 504 1008 2016 8064
126 7.9375 63.5 254 508 1016 2032 8128
127 8 64 256 512 1024 2048 8192
128 8.0625 64.5 258 516 1032 2064 8256
129 8.125 65 260 520 1040 2080 8320
130 8.1875 65.5 262 524 1048 2096 8384
131 8.25 66 264 528 1056 2112 8448
132 8.3125 66.5 266 532 1064 2128 8512
133 8.375 67 268 536 1072 2144 8576
134 8.4375 67.5 270 540 1080 2160 8640
135 8.5 68 272 544 1088 2176 8704
136 8.5625 68.5 274 548 1096 2192 8768
137 8.625 69 276 552 1104 2208 8832
138 8.6875 69.5 278 556 1112 2224 8896
139 8.75 70 280 560 1120 2240 8960
140 8.8125 70.5 282 564 1128 2256 9024
141 8.875 71 284 568 1136 2272 9088
142 8.9375 71.5 286 572 1144 2288 9152
143 9 72 288 576 1152 2304 9216
144 9.0625 72.5 290 580 1160 2320 9280
145 9.125 73 292 584 1168 2336 9344
146 9.1875 73.5 294 588 1176 2352 9408
147 9.25 74 296 592 1184 2368 9472
148 9.3125 74.5 298 596 1192 2384 9536
149 9.375 75 300 600 1200 2400 9600
150 9.4375 75.5 302 604 1208 2416 9664
151 9.5 76 304 608 1216 2432 9728
152 9.5625 76.5 306 612 1224 2448 9792
153 9.625 77 308 616 1232 2464 9856
154 9.6875 77.5 310 620 1240 2480 9920
155 9.75 78 312 624 1248 2496 9984
156 9.8125 78.5 314 628 1256 2512 10048
157 9.875 79 316 632 1264 2528 10112
158 9.9375 79.5 318 636 1272 2544 10176
159 10 80 320 640 1280 2560 10240
160 10.0625 80.5 322 644 1288 2576 10304
161 10.125 81 324 648 1296 2592 10368
162 10.1875 81.5 326 652 1304 2608 10432
163 10.25 82 328 656 1312 2624 10496
164 10.3125 82.5 330 660 1320 2640 10560
165 10.375 83 332 664 1328 2656 10624
166 10.4375 83.5 334 668 1336 2672 10688
167 10.5 84 336 672 1344 2688 10752
168 10.5625 84.5 338 676 1352 2704 10816
169 10.625 85 340 680 1360 2720 10880
170 10.6875 85.5 342 684 1368 2736 10944
171 10.75 86 344 688 1376 2752 11008
172 10.8125 86.5 346 692 1384 2768 11072
173 10.875 87 348 696 1392 2784 11136
174 10.9375 87.5 350 700 1400 2800 11200
175 11 88 352 704 1408 2816 11264
176 11.0625 88.5 354 708 1416 2832 11328
177 11.125 89 356 712 1424 2848 11392
178 11.1875 89.5 358 716 1432 2864 11456
179 11.25 90 360 720 1440 2880 11520
180 11.3125 90.5 362 724 1448 2896 11584
181 11.375 91 364 728 1456 2912 11648
182 11.4375 91.5 366 732 1464 2928 11712
183 11.5 92 368 736 1472 2944 11776
184 11.5625 92.5 370 740 1480 2960 11840
185 11.625 93 372 744 1488 2976 11904
186 11.6875 93.5 374 748 1496 2992 11968
187 11.75 94 376 752 1504 3008 12032
188 11.8125 94.5 378 756 1512 3024 12096
189 11.875 95 380 760 1520 3040 12160
190 11.9375 95.5 382 764 1528 3056 12224
191 12 96 384 768 1536 3072 12288
192 12.0625 96.5 386 772 1544 3088 12352
193 12.125 97 388 776 1552 3104 12416
194 12.1875 97.5 390 780 1560 3120 12480
195 12.25 98 392 784 1568 3136 12544
196 12.3125 98.5 394 788 1576 3152 12608
197 12.375 99 396 792 1584 3168 12672
198 12.4375 99.5 398 796 1592 3184 12736
199 12.5 100 400 800 1600 3200 12800
200 12.5625 100.5 402 804 1608 3216 12864
201 12.625 101 404 808 1616 3232 12928
202 12.6875 101.5 406 812 1624 3248 12992
203 12.75 102 408 816 1632 3264 13056
204 12.8125 102.5 410 820 1640 3280 13120
205 12.875 103 412 824 1648 3296 13184
206 12.9375 103.5 414 828 1656 3312 13248
207 13 104 416 832 1664 3328 13312
208 13.0625 104.5 418 836 1672 3344 13376
209 13.125 105 420 840 1680 3360 13440
210 13.1875 105.5 422 844 1688 3376 13504
211 13.25 106 424 848 1696 3392 13568
212 13.3125 106.5 426 852 1704 3408 13632
213 13.375 107 428 856 1712 3424 13696
214 13.4375 107.5 430 860 1720 3440 13760
215 13.5 108 432 864 1728 3456 13824
216 13.5625 108.5 434 868 1736 3472 13888
217 13.625 109 436 872 1744 3488 13952
218 13.6875 109.5 438 876 1752 3504 14016
219 13.75 110 440 880 1760 3520 14080
220 13.8125 110.5 442 884 1768 3536 14144
221 13.875 111 444 888 1776 3552 14208
222 13.9375 111.5 446 892 1784 3568 14272
223 14 112 448 896 1792 3584 14336
224 14.0625 112.5 450 900 1800 3600 14400
225 14.125 113 452 904 1808 3616 14464
226 14.1875 113.5 454 908 1816 3632 14528
227 14.25 114 456 912 1824 3648 14592
228 14.3125 114.5 458 916 1832 3664 14656
229 14.375 115 460 920 1840 3680 14720
230 14.4375 115.5 462 924 1848 3696 14784
231 14.5 116 464 928 1856 3712 14848
232 14.5625 116.5 466 932 1864 3728 14912
233 14.625 117 468 936 1872 3744 14976
234 14.6875 117.5 470 940 1880 3760 15040
235 14.75 118 472 944 1888 3776 15104
236 14.8125 118.5 474 948 1896 3792 15168
237 14.875 119 476 952 1904 3808 15232
238 14.9375 119.5 478 956 1912 3824 15296
239 15 120 480 960 1920 3840 15360
240 15.0625 120.5 482 964 1928 3856 15424
241 15.125 121 484 968 1936 3872 15488
242 15.1875 121.5 486 972 1944 3888 15552
243 15.25 122 488 976 1952 3904 15616
244 15.3125 122.5 490 980 1960 3920 15680
245 15.375 123 492 984 1968 3936 15744
246 15.4375 123.5 494 988 1976 3952 15808
247 15.5 124 496 992 1984 3968 15872
248 15.5625 124.5 498 996 1992 3984 15936
249 15.625 125 500 1000 2000 4000 16000
250 15.6875 125.5 502 1004 2008 4016 16064
251 15.75 126 504 1008 2016 4032 16128
252 15.8125 126.5 506 1012 2024 4048 16192
253 15.875 127 508 1016 2032 4064 16256
254 15.9375 127.5 510 1020 2040 4080 16320
255 16 128 512 1024 2048 4096 16384
// 타이머0 CTC 비교 매치 인터럽트
TCCR0=0x09; OCR0= 79; TIMSK=2; //16000000/1/(1+ 79),5us
TCCR0=0x09; OCR0=159; TIMSK=2; //16000000/1/(1+159),10us

TCCR0=0x0A; OCR0=  9; TIMSK=2; //16000000/8/(1+  9),5us
TCCR0=0x0A; OCR0= 19; TIMSK=2; //16000000/8/(1+ 19),10us
TCCR0=0x0A; OCR0= 39; TIMSK=2; //16000000/8/(1+ 39),20us
TCCR0=0x0A; OCR0= 49; TIMSK=2; //16000000/8/(1+ 49),25us
TCCR0=0x0A; OCR0= 57; TIMSK=2; //16000000/8/(1+ 57),29us
TCCR0=0x0A; OCR0= 59; TIMSK=2; //16000000/8/(1+ 59),30us
TCCR0=0x0A; OCR0= 79; TIMSK=2; //16000000/8/(1+ 79),40us
TCCR0=0x0A; OCR0= 99; TIMSK=2; //16000000/8/(1+ 99),50us
TCCR0=0x0A; OCR0=115; TIMSK=2; //16000000/8/(1+115),58us
TCCR0=0x0A; OCR0=119; TIMSK=2; //16000000/8/(1+119),60us
TCCR0=0x0A; OCR0=139; TIMSK=2; //16000000/8/(1+139),70us
TCCR0=0x0A; OCR0=159; TIMSK=2; //16000000/8/(1+159),80us
TCCR0=0x0A; OCR0=179; TIMSK=2; //16000000/8/(1+179),90us
TCCR0=0x0A; OCR0=199; TIMSK=2; //16000000/8/(1+199),100us

TCCR0=0x0B; OCR0=  4; TIMSK=2; //16000000/32/(1+  4),10us //Timer0만
TCCR0=0x0B; OCR0=  9; TIMSK=2; //16000000/32/(1+  9),20us
TCCR0=0x0B; OCR0= 14; TIMSK=2; //16000000/32/(1+ 14),30us
TCCR0=0x0B; OCR0= 19; TIMSK=2; //16000000/32/(1+ 19),40us
TCCR0=0x0B; OCR0= 24; TIMSK=2; //16000000/32/(1+ 24),50us
TCCR0=0x0B; OCR0= 28; TIMSK=2; //16000000/32/(1+ 28),58us
TCCR0=0x0B; OCR0= 29; TIMSK=2; //16000000/32/(1+ 29),60us
TCCR0=0x0B; OCR0= 34; TIMSK=2; //16000000/32/(1+ 34),70us
TCCR0=0x0B; OCR0= 39; TIMSK=2; //16000000/32/(1+ 39),80us
TCCR0=0x0B; OCR0= 44; TIMSK=2; //16000000/32/(1+ 44),90us
TCCR0=0x0B; OCR0= 49; TIMSK=2; //16000000/32/(1+ 49),100us
TCCR0=0x0B; OCR0= 99; TIMSK=2; //16000000/32/(1+ 99),200us
TCCR0=0x0B; OCR0=124; TIMSK=2; //16000000/32/(1+124),250us
TCCR0=0x0B; OCR0=149; TIMSK=2; //16000000/32/(1+149),300us
TCCR0=0x0B; OCR0=199; TIMSK=2; //16000000/32/(1+199),400us
TCCR0=0x0B; OCR0=249; TIMSK=2; //16000000/32/(1+249),500us

TCCR0=0x0C; OCR0=  4; TIMSK=2; //16000000/64/(1+  4),20us
TCCR0=0x0C; OCR0=  9; TIMSK=2; //16000000/64/(1+  9),40us
TCCR0=0x0C; OCR0= 14; TIMSK=2; //16000000/64/(1+ 14),60us
TCCR0=0x0C; OCR0= 19; TIMSK=2; //16000000/64/(1+ 19),80us
TCCR0=0x0C; OCR0= 24; TIMSK=2; //16000000/64/(1+ 24),100us
TCCR0=0x0C; OCR0= 49; TIMSK=2; //16000000/64/(1+ 49),200us
TCCR0=0x0C; OCR0= 74; TIMSK=2; //16000000/64/(1+ 74),300us
TCCR0=0x0C; OCR0= 99; TIMSK=2; //16000000/64/(1+ 99),400us
TCCR0=0x0C; OCR0=124; TIMSK=2; //16000000/64/(1+124),500us
TCCR0=0x0C; OCR0=149; TIMSK=2; //16000000/64/(1+149),600us
TCCR0=0x0C; OCR0=174; TIMSK=2; //16000000/64/(1+174),700us
TCCR0=0x0C; OCR0=199; TIMSK=2; //16000000/64/(1+199),800us
TCCR0=0x0C; OCR0=224; TIMSK=2; //16000000/64/(1+224),900us
TCCR0=0x0C; OCR0=249; TIMSK=2; //16000000/64/(1+249),1ms

TCCR0=0x0D; OCR0=  4; TIMSK=2; //16000000/128/(1+  4),40us //Timer0만
TCCR0=0x0D; OCR0=  9; TIMSK=2; //16000000/128/(1+  9),80us
TCCR0=0x0D; OCR0= 24; TIMSK=2; //16000000/128/(1+ 24),200us
TCCR0=0x0D; OCR0= 49; TIMSK=2; //16000000/128/(1+ 49),400us
TCCR0=0x0D; OCR0= 74; TIMSK=2; //16000000/128/(1+ 74),600us
TCCR0=0x0D; OCR0= 99; TIMSK=2; //16000000/128/(1+ 99),800us
TCCR0=0x0D; OCR0=124; TIMSK=2; //16000000/128/(1+124),1ms
TCCR0=0x0D; OCR0=249; TIMSK=2; //16000000/128/(1+249),2ms

TCCR0=0x0E; OCR0=  4; TIMSK=2; //16000000/256/(1+  4),80us
TCCR0=0x0E; OCR0= 24; TIMSK=2; //16000000/256/(1+ 24),400us
TCCR0=0x0E; OCR0= 49; TIMSK=2; //16000000/256/(1+ 49),800us
TCCR0=0x0E; OCR0=124; TIMSK=2; //16000000/256/(1+124),2ms
TCCR0=0x0E; OCR0=249; TIMSK=2; //16000000/256/(1+249),4ms

TCCR0=0x0F; OCR0=124; TIMSK=2; //16000000/1024/(1+124),8ms
TCCR0=0x0F; OCR0=155; TIMSK=2; //16000000/1024/(1+155),9.984ms
TCCR0=0x0F; OCR0=249; TIMSK=2; //16000000/1024/(1+249),16ms

 

728x90
반응형
LIST

'Embedded System > AVR' 카테고리의 다른 글

[AVR] 인터럽트 (Interrupt) (2)  (0) 2022.06.09
[AVR] 인터럽트 (Interrupt) (1)  (0) 2022.06.09
[AVR] JMOD-128-1  (0) 2022.06.09
[AVR] 타이머 (Timer)  (0) 2022.06.02
[AVR] MAX7219로 알파벳 표시  (0) 2022.06.02