1414주차주차 AVR의16비트타이머/카운터...

23
14 14주차 주차 AVR AVR16 16비트 비트 타이머 타이머/카운터 카운터 AVR AVR16 16비트 비트 타이머 타이머/카운터 카운터 제어 제어 레지스터 레지스터 및 관련 관련 실습 실습 Next-Generation Networks Lab.

Transcript of 1414주차주차 AVR의16비트타이머/카운터...

Page 1: 1414주차주차 AVR의16비트타이머/카운터 …contents.kocw.net/KOCW/document/2015/shinhan/leesangrok/14.pdf · 1414주차주차 AVR의16비트타이머/카운터 제어제어레지스터레지스터및및관련관련실습실습

1414주차주차AVRAVR의의 1616비트비트 타이머타이머//카운터카운터AVRAVR의의 1616비트비트 타이머타이머//카운터카운터

제어제어 레지스터레지스터 및및 관련관련 실습실습

Next-Generation Networks Lab.

Page 2: 1414주차주차 AVR의16비트타이머/카운터 …contents.kocw.net/KOCW/document/2015/shinhan/leesangrok/14.pdf · 1414주차주차 AVR의16비트타이머/카운터 제어제어레지스터레지스터및및관련관련실습실습

타이머/카운터 1, 타이머/카운터 3

번호 항 목 지원

1 비트수 16 bit

2 PWM 3 EA

3 입력 내부 타이머(clk ) 지원 ○3 입력 내부 타이머(clkCPU) 지원 ○

외부 카운터(clkI/O) 지원 ○

Normal ○

4 지원 CTC ○

모드 Fast PWM ○

Ph C PWM ○Phase Correct PWM ○

Phase & Freq Correct PWM ○

Overflow ○Overflow ○

5 인터럽트 Output Compare Match ○

Input Capture ○

104

6 기타 비동기 동작 모드 지원 -

Page 3: 1414주차주차 AVR의16비트타이머/카운터 …contents.kocw.net/KOCW/document/2015/shinhan/leesangrok/14.pdf · 1414주차주차 AVR의16비트타이머/카운터 제어제어레지스터레지스터및및관련관련실습실습

Block Diagram of Timer/Counter #1/#3Block Diagram of Timer/Counter #1/#3

105

Page 4: 1414주차주차 AVR의16비트타이머/카운터 …contents.kocw.net/KOCW/document/2015/shinhan/leesangrok/14.pdf · 1414주차주차 AVR의16비트타이머/카운터 제어제어레지스터레지스터및및관련관련실습실습

카운터카운터 부부

DATA BUS (8-bits)

16-bits REGISTER

106

Page 5: 1414주차주차 AVR의16비트타이머/카운터 …contents.kocw.net/KOCW/document/2015/shinhan/leesangrok/14.pdf · 1414주차주차 AVR의16비트타이머/카운터 제어제어레지스터레지스터및및관련관련실습실습

Accessing 16Accessing 16--bit Registersbit Registers

16-bit registers that can be accessed by the AVR CPU via the 8-bit data

bus The 16-bit register must be byte accessed using two read or writebus. The 16 bit register must be byte accessed using two read or write

operations. Each 16-bit timer has a single 8-bit register for temporary

storing of the high byte of the 16 bit access The same Temporarystoring of the high byte of the 16-bit access. The same Temporary

Register is shared between all 16-bit registers within each 16-bit timer.

T d 16 bit it th hi h b t t b itt b f th l b t To do a 16-bit write, the high byte must be written before the low byte.

For a 16-bit read, the low byte must be read before the high byte.

Accessing 16-bit registers are atomic operations. When both the main code

and the interrupt code update the temporary register, the main code must

disable the interrupts during the 16-bit access.

107

Page 6: 1414주차주차 AVR의16비트타이머/카운터 …contents.kocw.net/KOCW/document/2015/shinhan/leesangrok/14.pdf · 1414주차주차 AVR의16비트타이머/카운터 제어제어레지스터레지스터및및관련관련실습실습

입력입력 캡쳐캡쳐 부부

108

Page 7: 1414주차주차 AVR의16비트타이머/카운터 …contents.kocw.net/KOCW/document/2015/shinhan/leesangrok/14.pdf · 1414주차주차 AVR의16비트타이머/카운터 제어제어레지스터레지스터및및관련관련실습실습

출력출력 비교부비교부

109

Page 8: 1414주차주차 AVR의16비트타이머/카운터 …contents.kocw.net/KOCW/document/2015/shinhan/leesangrok/14.pdf · 1414주차주차 AVR의16비트타이머/카운터 제어제어레지스터레지스터및및관련관련실습실습

110

Page 9: 1414주차주차 AVR의16비트타이머/카운터 …contents.kocw.net/KOCW/document/2015/shinhan/leesangrok/14.pdf · 1414주차주차 AVR의16비트타이머/카운터 제어제어레지스터레지스터및및관련관련실습실습

타이머/카운터 1과3의 레지스터

T/C1 레지스터 T/C3 레지스터 기 능

TCCR1A TCCR3A 타이머/카운터n 제어 레지스터

TCCR1B TCCR3B 타이머/카운터 제어 레지스터TCCR1B TCCR3B 타이머/카운터n 제어 레지스터

TCCR1C TCCR3C 타이머/카운터n 제어 레지스터

TCNT1H TCNT3H 타이머/카운터n High 레지스터TCNT1H TCNT3H 타이머/카운터n High 레지스터

TCNT1L TCNT3L 타이머/카운터n Low 레지스터

OCR1AH OCR3AH 타이머/카운터n 출력 비교A High 레지스터OCR1AH OCR3AH 타이머/카운터n 출력 비교A High 레지스터

OCR1AL OCR3AL 타이머/카운터n 출력 비교A Low 레지스터

OCR1BH OCR3BH 타이머/카운터n 출력 비교B High 레지스터OCR1BH OCR3BH 타이머/카운터n 출력 비교B High 레지스터

OCR1BL OCR3BL 타이머/카운터n 출력 비교B Low 레지스터

OCR1CH OCR3CH 타이머/카운터n 출력 비교C High 레지스터타이머/카운터n 출력 비교C High 레지스터

OCR1CL OCR3CL 타이머/카운터n 출력 비교C Low 레지스터

ICR1H ICR3H 입력 캡쳐n High 레지스터입력 캡쳐 g 레지 터

ICR1L ICR3L 입력 캡쳐n Low 레지스터

Page 10: 1414주차주차 AVR의16비트타이머/카운터 …contents.kocw.net/KOCW/document/2015/shinhan/leesangrok/14.pdf · 1414주차주차 AVR의16비트타이머/카운터 제어제어레지스터레지스터및및관련관련실습실습

타이머/카운터 1

Interrupt Interrupt Name

ICF1 TIMER1_CAPT_vect SIG_INPUT_CAPTURE1

OCF1A TIMER1_COMPA_vect SIG_OUTPUT_COMPARE1A

OCF1B TIMER1 COMPB vect SIG OUTPUT COMPARE1BOCF1B TIMER1_COMPB_vect SIG_OUTPUT_COMPARE1B

OCF1C TIMER1_COMPC_vect SIG_OUTPUT_COMPARE1C

TOV1 TIMER1_OVF_vect SIG_OVERFLOW1_ _ _

타이머/카운터 3

Interrupt Interrupt Name

ICF3 TIMER3_CAPT_vect SIG_INPUT_CAPTURE3

OCF3A TIMER3 COMPA vect SIG OUTPUT COMPARE3AOCF3A TIMER3_COMPA_vect SIG_OUTPUT_COMPARE3A

OCF3B TIMER3_COMPB_vect SIG_OUTPUT_COMPARE3B

OCF3C TIMER3 COMPC vect SIG OUTPUT COMPARE3C

112

_ _ _ _

TOV3 TIMER3_OVF_vect SIG_OVERFLOW3

Page 11: 1414주차주차 AVR의16비트타이머/카운터 …contents.kocw.net/KOCW/document/2015/shinhan/leesangrok/14.pdf · 1414주차주차 AVR의16비트타이머/카운터 제어제어레지스터레지스터및및관련관련실습실습

TCCR1A TCCR1A (Timer/Counter Control Register(Timer/Counter Control Register))

Bit Name Descriptiont a e esc pt o

76

COM1A1COM1A0

Compare Match Output Mode for Channel ADDR bit of OC0 pin must be set to output port.Output of OC0 pin varies according to WGM mode

54

COM1B1COM1B0

Compare Match Output Mode for Channel B4 COM1B0

32

COM1C1COM1C0

Compare Match Output Mode for Channel C2 COM1C0

10

WGM11WGM10

Waveform Generation ModeWGM13, WGM12와 결합하여 모드 설정

113

Page 12: 1414주차주차 AVR의16비트타이머/카운터 …contents.kocw.net/KOCW/document/2015/shinhan/leesangrok/14.pdf · 1414주차주차 AVR의16비트타이머/카운터 제어제어레지스터레지스터및및관련관련실습실습

TCCR1B TCCR1B (Timer/Counter Control Register(Timer/Counter Control Register))

Bit Name Descriptiont a e esc pt o

7 ICNC1 Input Capture Noise Canceler‘1’ Set Noise Canceler

6 ICES1 Input Capture Edge Select‘1’ Captured at a rising edge

32

WGM13WGM12

Waveform Generation ModeWGM11, WGM10과 결합하여 모드 설정

2 CS12 Prescaler Clock Selection210

CS12CS11CS10

Prescaler Clock Selection10-bit Prescaler options: 1, 1/8, 1/64, 1/256, 1/1024, External

114

Page 13: 1414주차주차 AVR의16비트타이머/카운터 …contents.kocw.net/KOCW/document/2015/shinhan/leesangrok/14.pdf · 1414주차주차 AVR의16비트타이머/카운터 제어제어레지스터레지스터및및관련관련실습실습

TCCR1A TCCR1A (Timer/Counter Control Register(Timer/Counter Control Register))

Bit Name Descriptiont a e esc pt o

76

FOC1AFOC1B

Force Output Compare for Channel AForce Output Compare for Channel B

5 FOC1C Force Output Compare for Channel C

115

Page 14: 1414주차주차 AVR의16비트타이머/카운터 …contents.kocw.net/KOCW/document/2015/shinhan/leesangrok/14.pdf · 1414주차주차 AVR의16비트타이머/카운터 제어제어레지스터레지스터및및관련관련실습실습

OC1 Output @ non-PWM mode

116

Page 15: 1414주차주차 AVR의16비트타이머/카운터 …contents.kocw.net/KOCW/document/2015/shinhan/leesangrok/14.pdf · 1414주차주차 AVR의16비트타이머/카운터 제어제어레지스터레지스터및및관련관련실습실습

OC1 Output @ fast PWM mode

117

Page 16: 1414주차주차 AVR의16비트타이머/카운터 …contents.kocw.net/KOCW/document/2015/shinhan/leesangrok/14.pdf · 1414주차주차 AVR의16비트타이머/카운터 제어제어레지스터레지스터및및관련관련실습실습

OC1 Output @ PC-PWM mode and PFC-PWM mode

118

Page 17: 1414주차주차 AVR의16비트타이머/카운터 …contents.kocw.net/KOCW/document/2015/shinhan/leesangrok/14.pdf · 1414주차주차 AVR의16비트타이머/카운터 제어제어레지스터레지스터및및관련관련실습실습

119

Page 18: 1414주차주차 AVR의16비트타이머/카운터 …contents.kocw.net/KOCW/document/2015/shinhan/leesangrok/14.pdf · 1414주차주차 AVR의16비트타이머/카운터 제어제어레지스터레지스터및및관련관련실습실습

120

Page 19: 1414주차주차 AVR의16비트타이머/카운터 …contents.kocw.net/KOCW/document/2015/shinhan/leesangrok/14.pdf · 1414주차주차 AVR의16비트타이머/카운터 제어제어레지스터레지스터및및관련관련실습실습

PrescalerPrescaler

121

Page 20: 1414주차주차 AVR의16비트타이머/카운터 …contents.kocw.net/KOCW/document/2015/shinhan/leesangrok/14.pdf · 1414주차주차 AVR의16비트타이머/카운터 제어제어레지스터레지스터및및관련관련실습실습

TCNT1H/1L (Timer Counter Register 1H/1L)

ICP1H/1L (Input Capture Register 1H/1L) ICP1H/1L (Input Capture Register 1H/1L)

122

Page 21: 1414주차주차 AVR의16비트타이머/카운터 …contents.kocw.net/KOCW/document/2015/shinhan/leesangrok/14.pdf · 1414주차주차 AVR의16비트타이머/카운터 제어제어레지스터레지스터및및관련관련실습실습

OCR1A/1B/1C (Output Compare Register 1A/1B/1C)

123

Page 22: 1414주차주차 AVR의16비트타이머/카운터 …contents.kocw.net/KOCW/document/2015/shinhan/leesangrok/14.pdf · 1414주차주차 AVR의16비트타이머/카운터 제어제어레지스터레지스터및및관련관련실습실습

TIMSK (Timer/Counter Interrupt Mask Register)

Bit Name Description

5 TICIE1 Ti /C t 1 I t C t I t t E bl5 TICIE1 Timer/Counter 1 Input Capture Interrupt Enable

4 OCIE1A Timer/Counter 1A Output Compare Match Interrupt Enable

3 OCIE1B Timer/Co nter 1B O tp t Compare Match Interr pt Enable3 OCIE1B Timer/Counter 1B Output Compare Match Interrupt Enable

2 TOIE1 Timer/Counter 0 Overflow Interrupt Enable

ETIMSK (Extended Timer/Counter Interrupt Mask Register)

124

Page 23: 1414주차주차 AVR의16비트타이머/카운터 …contents.kocw.net/KOCW/document/2015/shinhan/leesangrok/14.pdf · 1414주차주차 AVR의16비트타이머/카운터 제어제어레지스터레지스터및및관련관련실습실습

TIFR (Timer/Counter Interrupt Flag Register)

Bit Name Description

5 ICF1 Timer/Counter 1 Input Capture Flag5 ICF1 Timer/Counter 1 Input Capture Flag

4 OCF1A Timer/Counter 1A Output Compare Flag

3 OCF1B Timer/Counter 1B Output Compare Flag3 OCF1B Timer/Counter 1B Output Compare Flag

2 TOV1 Timer/Counter 1 Overflow Flag

ETIFR

125