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

Slides:



Advertisements
Similar presentations
연천 새둥지마을 체재형 주말농장 준공식 초청장 오시는 길 주제 일시 장소 21C 경기농촌희망심기 2005년 제1기 교육수료마을
Advertisements

SPARCS Wheel Seminar Mango X Sugoi
출석수업 자료 교과서 범위: 제1장-4장.
10월 충북노회 남선교회 순회 헌신예배 묵 도 기 도 성 경 봉 독 특 송 찬 양 설 교 찬양 / 봉헌 봉 헌 기 도
글에 나타난 시대적 사회적 배경을 파악할 수 있다. 배경 지식과 의미 해석의 관련성을 이해할 수 있다.
패널자료 분석
라오디게아 교회의 교훈 본문 계 3: ○라오디게아 교회의 사자에게 편지하라 아멘이시요 충성되고 참된 증인이시요 하나님의 창조의 근본이신 이가 이르시되 15. 내가 네 행위를 아노니 네가 차지도 아니하고 뜨겁지도 아니하도다 네가 차든지 뜨겁든지 하기를 원하노라.
한알Ⅱ「더불어 살기」전국대회 일정표 날짜 시간 7월 26일(목) 7월 27일(금) 7월 28일(토) 7월 29일(일)
2013학년도 전라북도고등학교신입생 입학전형 기본계획
선거관리위원회 위원 공개모집 4차 공고 제4기 선거관리위원회를 구성하는 위원 모집의
2015학년도 1학기 버디 프로그램 오리엔테이션 (목) 16:00.
열왕기하 1장을 읽고 묵상으로 예배를 준비합시다..
오늘의 학습 주제 Ⅱ. 근대 사회의 전개 4. 개항 이후의 경제와 사회 4-1. 열강의 경제 침탈 4-2. 경제적 구국 운동의 전개 4-3. 사회 구조와 의식의 변화 4-4. 생활 모습의 변화.
전도축제 계획서 *일시 : 2013년 4월 21, 28일 주일 (연속 2주)
2009학년도 가톨릭대학교 입학안내.
한국 상속세 및 증여세 과세제도 한국 국세공무원교육원 교 수 최 성 일.
중세시대의 의복 학번 & 이름.
다문화가정의 가정폭력의 문제점 연세대학교 행정대학원 정치행정리더십 2학기 학번 이름 홍 진옥.
이공계의 현실과 미래 제조업 立國 / 이공계 대학생의 미래 준비
신앙의 기초를 세우는 중고등부 1부 대 예 배 : 11 : 00 ~ 12 : 층 본당
신앙의 기초를 세우는 중고등부 1부 대 예 배 : 11 : 00 ~ 12 : 층 본당
◆ 지난주 반별 출석 보기 ◆ 제 56 권 26호 년 6월 26일 반 선생님 친구들 재적 출석 5세 화평 김성희 선생님
第1篇 자치입법 개론.
교직원 성희롱·성폭력·성매매 예방교육 벌교중앙초등학교 박명희
제5장 새로운 거버넌스와 사회복지정책 사회복지정책이 어떤 행위자에 의해 형성되고 집행되는지, 어떤 과정에서 그러한 일들이 이루어지는지, 효과적인 정책을 위해서는 어떤 일들이 필요한지 등을 본 장에서 알아본다 개인들이 생활을 개선하는 가장 효과적인고 궁극적인 방법은 개별적.
임상시험 규정 (최근 변경 사항 중심으로) -QCRC 보수 교육 과정 전달 교육
서울특별시 특별사법경찰 수사 송치서류 유의사항 서울특별시 특별사법경찰과 북부수사팀장 안   진.
특수학교용 아동학대! 제대로 알고 대처합시다..
사회복지현장의 이해 Generalist Social Worker 사회복지입문자기초과정 반포종합사회복지관 김한욱 관장
학교보건 운영의 실제 한천초등학교 이 채 금.
제 출 문 고용노동부 귀중 본 보고서를 ’ ~ ‘ 까지 실시한 “근로감독관 직무분석 및 교육프로그램 개발에 관한 연구”의 최종보고서로 제출합니다  연구기관 : 중앙경영연구소  프로젝트 총괄책임자 : 고병인 대표.
학습센터란? 기도에 관해 배울 수 있는 다양한 학습 코너를 통하여 어린이들이 보다 더 쉽게 기도를 알게 하고, 기도할 수 있게 하며, 기도의 사람으로 변화될 수 있도록 하는 체험학습 프로그램이다. 따라서 주입식이지 않으며 어린이들이 참여할 수 있는 역동적인 프로그램으로.
Digital BibleⅢ 폰속의 성경 디지털 바이블 2008년 12월 ㈜씨엔커뮤니케이션 ㈜씨엔엠브이엔오.
후에 70인역(LXX)을 좇아 영어 성경은 본서의 중심 주제인 “엑소도스”(출애굽기)라 하였다.
성 김대건 피츠버그 한인 성당 그리스도왕 대축일 공지사항
예배에 대하여.
말씀 듣는 시간입니다..
하나님은 영이시니 예배하는 자가 신령과 진정으로 예배할지니라.
지금 나에게 주신 레마인 말씀 히브리서 13장 8절.
예수의 제자들 담당교수 : 김동욱.
Lecture Part IV: Ecclesiology
KAINOS 날마다 더하여지는 Kainos News 이번 주 찬양 20 / 300 – 20개의 셀, 300명의 영혼
예배의 외부적인 틀II - 예배 음악 조광현.
영성기도회 렉시오 디비나와 묵상기도 2.
성인 1부 성경 공부 지도목사: 신정우 목사 부 장: 오중환 집사 2010년. 5월 9일
남북 탑승객 150명을 태운 디젤기관차가 2007년 5월 17일 오전 경의선 철길을 따라 남측 최북단 역인 도라산역 인근 통문을 통과하고 있다. /문산=사진공동취재단.
성경 암송 대회 한일교회 고등부 (일).
천주교 의정부교구 주엽동본당 사목협의회 사목활동 보고서
III. 노동조합과 경영자조직 노동조합의 이데올로기, 역할 및 기능 노동조합의 조직형태 노동조합의 설립과 운영
여수시 MICE 산업 활성화 전략 ( 중간보고 )
1. 단위사업 관리, 예산관리 사업설정 (교직원협의/의견수렴) 정책 사업 학교 정책 사업 등록 사업 기본정보 목표 설정
※과정 수료자에 한하여 수강료의 80~100% 차등 환급함
평생학습중심대학 프로그램 수강지원서 접수안내 오시는 길 관악구&구로구민을 위한 서울대학교 -- 접수 일정 및 방법 안내--
서비스산업의 선진화, 무엇이 필요한가? 김 주 훈 한 국 개 발 연 구 원.
기존에 없던 창업을 하고 싶은데, 누구의 도움을 받아야 할지 모르겠어요
전시회 개요 Ⅰ. 전시명칭 개최기간 개최장소 개최규모 주 최 참 관 객 현 지 파 트 너 General Information
Homeplus 일 家 양 득 프로그램 소개 2015년 12월.
Home Network 유동관.
통신이론 제 1 장 : 신호의 표현 2015 (1학기).
I. 기업과 혁신.
Chapter 4 – 프로그래밍 언어의 구문과 구현 기법

ESOCOM – IPIX 고정IP서비스 제안서 Proposer ㈜이소컴.
화장품 CGMP 한국콜마㈜.
초화류 종자 시장 규모 100억원 이상(추정, 생산액의 10%정도 차지)
COMPUTER ARCHITECTIRE
[ 한옥 실측 ] 1. 약실측 2. 정밀실측 조선건축사사무소.
14. 컴파일러 자동화 도구 스캐너 생성기 파서 생성기 코드 생성의 자동화
A제조용수/B환경관리/C시설관리 ㈜ 에이플러스 코리아
Introduction to Network Security
Presentation transcript:

ATmega128 타이머/카운터 1,3

타이머/카운터1,3 타이머/카운터1과 3은 16비트 업/다운 카운터로 동작 10비트 프리스케일러 내장 입력캡쳐 유닛 내장 비교 매치에서 타이머 클리어(오트 리로드) 가변 PWM 주기파형 출력 6개의 출력비교 유닛 내장 타이머 또는 카운터로 동작하며 다양한 모드 내장 6개의 PWM 출력 T1, T3에 의한 카운터 동작 캡쳐 기능 10개의 독립적인 인터럽트 소스 TOV1, OCF1A, OCF1B, OCF1C, ICE1 TOV3, OCF3A, OCF3B, OCF3C ICF3

타이머/카운터1,3 블록도(n=1,3) 클럭은 프리스케일러를 거친 내부클럭 또는 Tn(n=1,3) 핀을 통해 입력된 클럭 사용 출력파형은 단자 OCnA,OCnB OCnC를 통해 출력되며, ICPn은 타이머/카운터1,3의 TCNTn값을 ICRn에 저장할 때 사용되는 트리거 입력단자

타이머/카운터1, 3 관련 레지스터 타이머/카운터 레지스터 : TCNT1, TCNT3 -16비트 출력비교 레지스터(16비트) - OCR1A, OCR1B, OCR1C - OCR3A, OCR3B, OCR3C 타이머/카운터 제어 레지스터(8비트) - TCCR1A, TCCR1B, TCCR1C - TCCR13, TCCR3B, TCCR3C 입력캡쳐 레지스터 ICR1, ICR3 – 16비트 타이머/카운터 인터럽트 플래그 레지스터 : TIFR, ETIFR – 8비트 타이머/카운터 인터럽트 마스크 레지스터 : TIMSK, ETIMSK – 8비트 특수기능 I/O 레지스터 : SFIOR – 8비트

타이머/카운터1,3레지스터(TCNT1,3) TCNT1과 TCNT3은 타이머/카운터1과 3의 16비트 레지스터 값 저장 I/O영역에 각기 다른 어드레스를 가지고 있는 8비트 레지스터 TCNT1H와 TCNT1L, TCNT3H와 TCNT3L 2개로 각각 구성

TCNT1,3사용시 주의사항 TCNT1이나 TCNT3에 값을 쓰거나 읽는 프로그램을 작성할 때는 다음과 같은 주의 사항 필요 어셈블리어로 프로그램을 작성할 때는 8비트 단위로 2회에 걸쳐 읽 기 동작에서는 하위 바이트부터 먼저 읽고, 쓸때는 상위 바이트부터 쓰기 동작 실행 C로 프로그램을 작성 할 때는 16비트 레지스터명 TCNT1(또는 TCNT3)을 이용하여 한 스텝으로 프로그램 작성 위와 같은 규칙은 OCRnA, OCRnB, OCRnC, ICRn에 대해서도 동일하게 적용

타이머/카운터1,3 출력비교 레지스터(OCR1x,OCR3x) 출력 비교 레지스터 OCRnA, OCRnB, OCRnC(n=1, 3)는 TCNTn과의 값이 일치할 때 OCnA, OCnB, OCnC 핀을 통해 파형을 출력시키기 위해 비교값을 저장하기 위한 16비트 레지스터 TCNTn과 마찬가지로 I/O 영역에 각기 다른 어드레스를 가지고 있는 8비트 레지스터 OCRnAH와 OCRnAL, OCRnBH와 OCRnBL, OCRnCH와 OCRnCL로 각각 구성 레지스터들에 값을 쓰거나 읽는 프로그램을 작성할 때는 TCNTn의 경우와 같이 주의 필요

OCR1x(x=A, B, C) <OCR1x : Timer/Counter3 Output Compare Register>

OCR3x(x=A, B, C) <OCR1x : Timer/Counter3 Output Compare Register>

타이머/카운터1,3 입력캡쳐레지스터(ICR1,ICR3) 입력 캡쳐 핀 ICPn(n=1,3)에 이벤트가 발생할 때마다(또는 선택적으로 아날로그 비교기의 출력에 따라) TCNTn값으로갱신되는 16비트 레지스터 타이머/카운터 1과 3의 동작모드에 따라 TOP값을 정의하는데도 이용 8비트 레지스터 ICRnH와 ICRnL로 각각 구성 이 레지스터들에 값을 쓰거나 읽는 프로그램을 작성할 때는 TCNTn의 경우와 같이 주의 필요

<ICR1, 3 : Timer/Counter1, 3 Input Capture Register>

타이머/카운터1,3 제어 레지스터A (TCCR1A,TCCR3A) Bit 1,0 – WGMn1, WGMn0 : 파형 발생 모드 (Waveform Generation Mode) - TCCRnB 레지스터의 WGMn3, WGMn2비트와 함께 타이머/카운터1과 3의 동작모드 설정

Phase and Frequency Correct PWM 모드 WGM n3 n2 n1 n0 동작모드 TOP값 OCRnx의 업데이트 시점 TOVn 플래그 셋 시점 일반 모드 0xFFFF 설정 즉시 1 Phase Correct PWM(8비트) 0x00FF TOP 0x0000 2 Phase Correct PWM(9비트) 0x01FF 3 Phase Correct PWM(10비트) 0x03FF 4 CTC OCRnA 5 Fast PWM(8비트) 6 Fast PWM(9비트) 7 Fast PWM(10비트) 8 Phase and Frequency Correct PWM ICRn 0x00 9 10 Phase Correct PWM 11 12 13 reserved ― 14 Fast PWM 15

Bit7..2 – COMnx1, COMnx0 : Ocnx핀의 출력 모드 선택 비트(n=1,3 x=A,B,C) - 타이머/카운터 1과 3에서 비교 매치 동작에 따른 출력 핀의 동작 결정 - 출력 핀의 동작은 출력 비교 x핀 Ocnx에 영향을 주며, 이 핀에 대응되는 비트는 출력으로 설정 COMnx1 COMnx0 Ocnx핀의 출력 동작 일반 I/O 포트로 사용(Ocnx핀 차단) 1 비교 매치에서 OCnx 출력 토글(toggle) OCnx 출력 클리어 OCnx 출력 셋 Normal, CTC 동작모드에서 OCnx핀의 출력 동작(n=1,3 x=A,B,C

COMnx1 COMnx0 OCnx핀의 출력값 COMnx1 COMnx0 OCnx핀의 출력값 일반 I/O 포트로 사용(OCnx핀 차단) 1 모드 15인 경우에만 비교 매치에서 OCnA출력을 토글(toggle)하며, OCnB핀은 차단된다. 그밖에 모드에서는 일반 I/O포트로 사용(OCnA/OCnB 출력 차단) 비교매치에서 OCnx 출력 클리어, TOP에서 OCnx 출력 셋 비교매치에서 OCnx 출력 셋, TOP에서 OCnx 출력 클리어 Fast PWM 동작모드에서 OCnx핀의 출력동작 COMnx1 COMnx0 OCnx핀의 출력값 일반 I/O 포트로 사용(OCnx핀 차단) 1 모드9,11인 경우에만 비교 매치에서 OCnA출력을 토글(toggle)하며, OCnB핀은 차단된다. 그 밖의 모드에서는 일반 I/O포트로 사용(OCnx 출력 차단) 업 카운트 중의 비교매치에서 OCnX 출력 클리어 다운 카운트 중의 비교매치에서 OCnx 출력 셋 업 카운트 중의 비교매치에서 OCnx 출력 셋 다운 카운트 중의 비교매치에서 OCnx 출력 클리어 Phase( and Frequency) Correct PWM 동작모드에서 OCnx핀의 출력동작

타이머/카운터1,3 제어 레지스터B (TCCR1B,TCCR3B) Bit 7 – ICNCn : 입력 캡쳐 n 노이즈 제거기(Input Capture Noise Canceler) - 이 비트가 1이면, 입력 캡쳐 노이즈 제거기가 동작하여 Icn(n=1, 3)핀으로 입력되는 신호 필터링 처리 - 이 필터에는 출력이 변화하는데 있어 같은 입력 신호값이 4클럭 동안 지속 되는 것이 요구되며, 이에 따라 입력 캡쳐는 4클럭 만큼 지연되어 동작

Bit 6 – ICESn : 입력캡쳐 에지 선택(Input Capture Edge Select) - 이 비트가 0이면, 입력캡쳐 핀 Icn에 입력되는 신호의 하강 에지에 서 타이머/카운터n의 값이 입력캡쳐 레지스터 ICRn에 전달 - 이 비트가 1이면, Icn에 입력되는 신호의 상승에지에서 타이머/카 운터n의 값이 입력캡쳐 레지스터 ICRn에 전달 - ICESn의 설정에 따라 캡쳐 신호가 입력되면 타이머/카운터n의 값 이 ICRn에 저장되며, 입력캡쳐 인터럽트 플래그 ICFn이 1이 되어 인터럽트 발생 - 레지스터 ICRn이 타이머/카운터1의 최대값(TOP)을 저장하는 레지 스터로 사용하는 동작모드에서는 Icn핀은 차단되고 입력캡쳐 기능 은 사용할 수 없음

Bit 4, Bit 3 – WGMn3, WGMn2 : 파형 발생 모드 TCCRnA 레지스터의 WGMn1, WGMn0비트와 함께 타이머/카운터n의 동작모드 설정 Bit 2, 1, 0 – CSn2, CSn0 : 클럭 선택(Clock Select) - 타이머/카운터n의 클럭 소스를 선택

타이머/카운터n 클럭 소스(n=1,3) CSn2 CSn1 CSn0 클럭 소스 타이머/카운터n 정지 1 𝑐𝑙𝑘 𝐼/𝑂 / 1 타이머/카운터n 정지 1 𝑐𝑙𝑘 𝐼/𝑂 / 1 𝑐𝑙𝑘 𝐼/𝑂 / 8 𝑐𝑙𝑘 𝐼/𝑂 / 64 𝑐𝑙𝑘 𝐼/𝑂 / 256 𝑐𝑙𝑘 𝐼/𝑂 / 1024 Tn핀에 입력되는 외부 클럭(하강 에지에서 동작) Tn핀에 입력되는 외부 클럭(상승 에지에서 동작) ※𝑐𝑙𝑘 𝐼/𝑂 는 시스템 주파스와 같음

타이머/카운터 1과 3의 프리스케일러

타이머/카운터1,3 제어 레지스터C (TCCR1C,TCCR3C) Bit 7..5 – FOCnx(Force Output Compare)(n=1,3 x=A, B, C) - PWM 모드가 아닌 경우에만 유효하며, 이 비트가 1이면 비교 출력단자 Ocnx를 통해 COMnx1 : COMnx0비트에 의해 설정된 값이 즉시 출력

타이머/카운터 인터럽트 마스크 레지스터(TIMSK) Bit 5 – TICIE1 : 타이머/카운터1 입력캡쳐(Capture) 인터럽트 인에이블 비트 - 이 비트와 SREG의 I비트가 1이면 타이머/카운터1 입력캡쳐 인터럽트 인에이블 - IC1 핀에서 캡쳐 트리거(trigger) 이벤트가 발생하면 인터럽트 실행 Bit 4 – OCIE1A : 타이머/카운터1 출력 비교 A 매치 인터럽트 인에이블 비트 - 이 비트와 SREG의 I비트가 1이면 타이머/카운터1의 비교 A매치 인터럽트 인에이블 - 타이머/카운터1의 비교A 매치가 발생하면 인터럽트 실행 Bit 3 – OCIE1B : 타이머/카운터1 출력 비교 B 매치 인터럽트 인에이블 비트 - 이 비트와 SREG의 I비트가 1이면 타이머/카운터1의 비교 B매치 인터럽트 인에이블 - 타이머/카운터1의 비교B 매치가 발생하면 인터럽트 벡터 실행 Bit2 – TOIE1 : 타이머/카운터1 오버플로우 인터럽트 인에이블 비트 - 이 비트와 SREG의 I비트가 1이면 타이머/카운터1의 오버플로우 인터럽트 인에이블 - 타이머/카운터 오버플로우가 발생하면 인터럽트 실행

확장 타이머/카운터 인터럽트 마스크 레지스터(ETIMSK) Bit 5 – TICIE3 : 타이머/카운터3 입력캡쳐(Capture) 인터럽트 인에이블 비트 - 이 비트와 SREG의 I비트가 1이면 타이머/카운터3 입력캡쳐 인터럽트 인에이블 - IC3 핀에서 캡쳐 트리거(trigger) 이벤트가 발생하면 인터럽트 실행 Bit 4 – OCIE3A : 타이머/카운터3 출력 비교 A 매치 인터럽트 인에이블 비트 - 이 비트와 SREG의 I비트가 1이면 타이머/카운터3의 비교 A매치 인터럽트 인에이블 - 타이머/카운터3의 비교A 매치가 발생하면 인터럽트 실행 Bit 3 – OCIE3B : 타이머/카운터3 출력 비교 B 매치 인터럽트 인에이블 비트 - 이 비트와 SREG의 I비트가 1이면 타이머/카운터3의 비교 B매치 인터럽트 인에이블 - 타이머/카운터3의 비교B 매치가 발생하면 인터럽트 실행

Bit 2 – TOIE3 : 타이머/카운터3 오버플로우 인터럽트 인에이블 비트 - 이 비트와 SREG의 I비트가 1이면 타이머/카운터3의 오버플로우 인터럽트 인에이블 - 타이머/카운터3의 오버플로우가 발생하면 인터럽트 실행 Bit 1 – OCIE3C : 타이머/카운터3 출력 비교 C 매치 인터럽트 인에이블 비트 - 이 비트와 SREG의 I비트가 1이면 타이머/카운터3의 비교 C매치인터럽트 인에이블 - 타이머/카운터3의 비교C 매치가 발생하면 인터럽트 실행 Bit 0 – OCIE1C : 타이머/카운터1 출력 비교 C 매치 인터럽트 인에이블 비트 - 이 비트와 SREG의 I비트가 1이면 타이머/카운터1의 비교 C매치 인터럽트 인에이블 - 타이머/카운터1의 비교C 매치가 발생하면 인터럽트 실행

타이머/카운터 인터럽트 플래그 레지스터(TIFR) Bit 5 – ICF1 : 타이머/카운터1 입력캡쳐 플래그 비트 - IC1핀에 캡쳐 이벤트가 발생했을 때 셋 되며, 입력캡쳐 인터럽트 발생 - ICR1 레지스터가 TOP 값으로 사용되는 동작모드에서는 TCNT1의 값이 TOP이 될 때 셋 - SREG의 I, TIMSK의 TICIE1과 ICF1 비트가 셋 되면 타이머/카운터 1 캡쳐 인터럽트 실행 - 이 비트는 대응되는 인터럽트 처리 루틴이 실행되면 자동적으로 클리어 Bit 4 – OCF1A : 출력 비교 플래그 비트 1A - TCNT1과 출력 비교 레지스터 1A인 OCR1A가 일치했을 경우 셋 - SREG의 I, TIMSK의 OCIE1A과 OCF1A 비트가 셋 되면 타이머/카운터1 비교 A매치 인터럽트 실행 - OCF1A는 대응되는 인터럽트 처리 루틴을 실행할 경우에 하드웨어적으로 자동 클리어 되거나 플래그에 1을 쓸 경우 클리어

타이머/카운터 인터럽트 플래그 레지스터(TIFR) Bit 3 – OCF1B : 출력 비교 플래그 비트 1B - TCNT1과 출력 비교 레지스터 1B인 OCR1B가 일치했을 경우 셋 - SREG의 I, TIMSK의 OCIE1B와 OCF1B 비트가 셋 되면 타이머/카운터1 비교 B 매치 인터럽트 실행 - OCF1B는 대응되는 인터럽트 처리 루틴을 실행할 경우에 하드웨어적으로 자동 클리어 되거나 플래그에 1을 쓸 경우 클리어 Bit 2 – TOV1 : 타이머/카운터1 오버플로우 플래그 비트 - 타이머/카운터1에서 오버플로우가 발생했을 경우 셋 - SREG의 I, TIMSK의 TOIE1과 TOV1 비트가 셋되면 타이머/카운터1 오버플로우 인터럽트 실행 - TOV1은 대응되는 인터럽트 처리 루틴을 실행할 경우에 하드웨어적으로 자동 클리어 되거나, TOV1에 1을 쓰면 클리어 - Phase Correct PWM모드에서 이 비트는 타이머/카운터1의 카운터 값이 0x0000에서 카운터 방향이 바뀔 때 셋

확장 타이머/카운터 인터럽트 플래그 레지스터(ETIFR) Bit 5 – ICF3 : 타이머/카운터3 입력 캡쳐 플래그 비트 - IC3핀에 캡쳐 이벤트가 발생했을 때 셋 되며, 입력 캡쳐 인터럽트 발생 - ICR3 레지스터가 TOP값으로 사용되는 동작모드에서는 TCNT3의 값이 TOP값이 될 때 셋 - SREG의 I, ETIMSK의 TICIE3와 ICF3 비트가 셋 되면 타이머/카운터3 캡쳐 인터럽트 실행 - 이 비트는 대응되는 인터럽트 처리 루틴이 실행되면 자동적으로 클리어 Bit 4 – OCF3A : 출력 비교 플래그 비트 3A - TCNT3과 출력 비교 레지스터 3A인 OCR3A가 일치했을 경우 셋 - SREG의 I비트, ETIMSK의 OCIE비트와 OCF3A가 셋 되면 타이머/카운터3 비교 A 매치 인터럽트 실행 - 이 비트는 대응되는 인터럽트가 실행되면 하드웨어적으로 자동 클리어 되거나 플래그에 1을 쓰면 클리어

확장 타이머/카운터 인터럽트 플래그 레지스터(ETIFR) Bit 3 – OCF3B : 출력 비교 플래그 비트 3B - TCNT3과 출력 비교 레지스터 3B인 OCR3B가 일치했을 경우 셋 - SREG의 I비트, ETIMSK의 OCIE3B비트와 OCF3B가 셋 되면 타이머/ 카운터3 비교 B매치 인터럽트 실행 - 이 비트는 대응되는 인터럽트 처리 루틴을 실행할 경우에 하드웨어적 으로 자동 클리어 되거나 플래그에 1을 쓸 경우 클리어 Bit 2 – TOV3 : 타이머/카운터3 오버플로우 플래그 비트 - 타이머/카운터3에서 오버플로우가 발생했을 경우 셋 - SREG의 , ETIMSK의 TOIE3과 TOV3비트가 셋 되면 타이머/카운터3 오버플로우 인터럽트 실행 - TOV3은 대응되는 인터럽트 처리 루틴을 실행할 경우에 하드웨어적으로 자동 클리어 되거나, TOV3에 1을 쓰면 클리어 - Phase Correct PWM모드에서 이 비트는 타이머/카운터3의 카운터 값이 0x0000에서 카운터 방향이 바뀔 때 셋

확장 타이머/카운터 인터럽트 플래그 레지스터(ETIFR) Bit 1 – OCF3C : 출력 비교 플래그 3C 비트 - TCNT3과 출력 비교 레지스터 3C인 OCR3C가 일치했을 경우 셋 - SREG의 I, ETIMSK의 OCIE3C와 OCF3C 비트가 셋 되었을 때 타이머/ 카운터3 비교 C 매치 인터럽트 실행 - OCF3C는 대응되는 인터럽트 처리 루틴을 실행할 경우에 하드웨어적 으로 자동 클리어 되거나 플래그에 1을 쓸 경우 클리어 Bit 0 – OCF1C : 출력 비교 플래그 1C 비트 - TCNT1과 출력 비교 레지스터 1C인 OCR1C가 일치했을 경우 셋 - SREG의 I, ETIMSK의 OCIE1C와 OCF1C 비트가 셋 되었을 때 타이머/ 카운터1 비교 C 매치 인터럽트 실행 - OCF1C는 대응되는 인터럽트 처리 루틴을 실행할 경우에 하드웨어적

특수 기능 I/O레지스터(SFIOR) Bit 7 – TSM(Timer/Counter Synchronization Mode) : 타이머/카운터 동기 모드 - 모든 타이머/카운터를 동기화시키는 기능 - 1로 설정하면 PSR0 및 PSR321 비트값이 그대로 유지 - PSR0과 PSR321이 모두 1인 경우 대응하는 프리스케일러를 계속해서 리셋 상태를 유지하게 해주어 모든 타이머/카운터를 정지시켜 주는 역할을 함 - 타이머/카운터가 정지된 상태에서 타이머/카운터에 같은 값을 설정 - 이 비트를 0으로 하면 PSR0과 PSR321비트는 하드웨어적으로 클리어 되어 타이머/카운터는 동시에 카운팅을 시작하게 되어 동기를 맞출 수 있음 Bit 0 – PSR321 : 타이머/카운터 1, 2, 3의 프리스케일러 리셋 - 1로 설정하면 타이머/카운터 1~3이 공통으로 사용하고 있는 프리스케일러 를 리셋시키며, TSM비트가 0이면 이 비트는 자동적으로 클리어

타이머/카운터n(n=1,3)동작 일반 모드(Normal Mode) 업 카운터로서만 동작 타이머/카운터값이 16비트 최대값 0xFFFF (TOP=0xFFFF)가 되면, 0x0000부터 다시 시작 타이머/카운터n의 오버플로우 인터럽트 플래그 TOVn는 TCNTn값이 0xFFFF에서 0x0000으로 될 때 1이 되어 인터럽트 발생 상한값 고정(0xFFFF), 하한값 TCNTn초기값  초기값으로 주기 조정

TCNTn의 초기값은 0일 필요는 없으며, 필요로 하는 시정수(인터럽트주기)를 갖도록 오버플로우 인터럽트가 발생할 때마다 같은 초기값으로 설정하면 일정한 시간 간격으로 처리 가능 인터럽트 주기(중요)  TIMn_OVF (1/16)us * 분주비 * (65536 – 초기값) 예를 들면, 시스템 클럭이 16MHz인 ATmega128 시스템에서 TCCRnA = 0x00 TCCRnB = 0x02(8분주), TCNTn=55536을 설정하면 (1/16)us * 8분주 * (65536 – 55536) = 5000us = 5ms  오버플로우 인터럽트가 발생할 때마다 TCNTn에 55536을 넣어주면, 5ms마다 계속해서 오버플로우 인터럽트 발생

(2) CTC (Clear Time on Compare Match Mode) 타이머/카운트n에서 CTC모드는 모드 4와 모드 12가 있음 TCNTn값은 OCRnA(모드4) 또는 ICRn(모드12)값과 일치하면 다음 클럭에서 0x0000 으로 클리어 TCNTn의 값은 0~OCRnA(또는 ICRn)의 범위 하한값은 0 고정, 상한값은 OCRnA(또는 ICRn)  상한값으로 주기 조정

𝑓 𝑂𝐶𝑛𝐴 = 𝑓 𝑐𝑙𝑘(𝐼/𝑂) 2•𝑁•(1+𝑇𝑂𝑃) 모드4 : OCRnA를 TOP값으로 사용, TCNTn이 OCRnA와 일치할 때마다 OCFnA가 셋되어 출력비교 매치 인터럽트 발생 모드12 : ICRn을 TOP값으로 사용, TCNTn이 ICRn과 일치할 때마다 ICFn이 셋되어 입력 캡쳐 인터럽트가 발생 출력비교매치 인터럽트 주기 = (1/16)us * 분주비 * (1+OCRnA) : 모드 4 입력 캡쳐 인터럽트 주기 = (1/16)us * 분주비 * (1+ICRn) : 모드 12 CTC모드에서 파형 출력모드를 토글 모드로 하면, TCNTn이 TOP과 같을 떄마다 OCnA핀을 통해 토글된 값이 계속해서 출력되며 이때 파형의 주파수는 𝑓 𝑂𝐶𝑛𝐴 = 𝑓 𝑐𝑙𝑘(𝐼/𝑂) 2•𝑁•(1+𝑇𝑂𝑃) (N : 분주비 1, 8, 64, 256, 1024, 𝑓 𝑐𝑙𝑘(𝐼/𝑂) : 시스템 클럭의 주파수) (모드4에서 TOP = OCRnA, 모드 12에서 TOP = ICRn)

𝑓 𝑂𝐶 𝑛𝑥 𝑃𝑊𝑀 = 𝑓 𝑐𝑙𝑘(𝐼/𝑂) 𝑁•(1+𝑇𝑂𝑃) (3) 고속 PWM 모드(Fast Pulse Width Modulation Mode) 높은 주파수의 PWM 파형을 발생하는데 유용 모드 5, 6, 7, 14, 15의 동작모드 TCNTn값은 0에서 TOP값까지 증가하다 다시 0부터 카운트하는 동작 반복 TOP값은 0x00FF(8비트), 0x01FF(9비트), 0x03FF(10비트), ICRn, OCRnA로 지정 비반전 비교 출력모드(COMnx1:0=2)에서 TCNTn값은 계속하여 OCRnx와 비교되어 일치하면 Ocnx핀을 통해 0이 출력되고, TCNTn값이 0이 되면 1이 출력되며 Ocnx핀을 통해 출력되는 파형의 주파수는 𝑓 𝑂𝐶 𝑛𝑥 𝑃𝑊𝑀 = 𝑓 𝑐𝑙𝑘(𝐼/𝑂) 𝑁•(1+𝑇𝑂𝑃) (N : 분주비 1, 8, 64, 256, 1024, 𝑓 𝑐𝑙𝑘(𝐼/𝑂) : 시스템 클럭의 주파수) OCRnx에 설정된 값에 따라 High(또는 Low)부분의 펄스폭이 가변되어 PWM 파형을 출력

타이머/카운터n의 Fast PWM모드 (n=1,3 X=A,B,C) OCRnx값이 클때 OCRnx값이 작을때

𝑓 𝑂𝐶 𝑛𝑥 𝑃𝑊𝑀 = 𝑓 𝑐𝑙𝑘(𝐼/𝑂) 2•𝑁•𝑇𝑂𝑃 (4) PC(Phase Correct) PWM Mode 높은 분해능의 PWM 파형을 발생하는데 유용 모드 1,2,3,10,11의 동작모드 TCNTn값이 0에서 TOP까지 증가하다 0으로 감소하는 카운트 동작 반복 TOP값은 0x00FF(8비트), 0x01FF(9비트), 0x03FF(10비트), ICRn, OCRnA로 지정 비반전 비교 출력모드에서 업카운트 중에 TCNTn과 출력 비교 레지스터 OCRnx의 값이 일치하면 Ocnx핀을 통해 0이 출력되고, 다운 카운트 중에 일치하면 1이 출력 OCRnx 설정값에 따라 Hign(또는 Low) 부분의 펄스폭이 가변되어 PWM 파형 출력 Ocnx핀을 통해 출력되는 파형 주파수는 𝑓 𝑂𝐶 𝑛𝑥 𝑃𝑊𝑀 = 𝑓 𝑐𝑙𝑘(𝐼/𝑂) 2•𝑁•𝑇𝑂𝑃 (N : 분주비 1, 8, 64, 256, 1024, 𝑓 𝑐𝑙𝑘(𝐼/𝑂) : 시스템 클럭의 주파수) PC PWM모드에서의 주파수는 고속 PWM모드에 비해 반으로 줄어듬

타이머/카운터n의 Phase Correct PWM모드 (n=1,3 x=A,B,C) OCRnx값이 클 때 OCRnx값이 작을 때

Phase and Frequency Correct PWM (5) PFC(Phase and Frequency Correct) PWM Mode 높은 분해능의 PWM 파형을 발생하는데 유용 PC PWM모드와 동작은 같지만 출력 비교 레지스터 OCRnx의 값이 변하는 시점이 다르다. 타이머/카운터1과 3의 동작모드(n=1,3 x=A,B,C) 모드 WGM n3 n2 n1 n0 동작모드 TOP값 OCRnx의 업데이트 시점 TOVn 플래그셋 시점 1 Phase Correct PWM(8비트) 0x00FF TOP 0x0000 2 Phase Correct PWM(9비트) 0x01FF 3 Phase Correct PWM(10비트) 0x03FF 10 Phase Correct PWM ICRn 11 OCRnA 8 Phase and Frequency Correct PWM 0x00 9

타이머/카운터n의 Phase and Frequency Correct PWM 모드 (n=1,3 x=A,B,C) OCRnx 값이 Update OCRnx Update OCRnx 값이 클 때 OCRnx Update OCRnx Update OCRnx 값이 클 때

입력 캡쳐 유닛 (Input Capture Unit) 타이머/카운터n의 값을 캡쳐하여 레지스터 ICRn(n=1,3)에 저장하는 기능 입력캡쳐 유닛의 주 트리거 신호는 Icn핀으로 입력되는 신호 아날로그 비교기 제어 및 상태 레지스터 ACSR의 ACIC(Analog Compare Input Capture)비트를 셋 하면 아날로그 비교기의 출력을 트리거 신호로 사용 가능 입력 캡쳐 기능에 관하여 타이머/카운터n 제어 레지스터 TCCRnB의 ICNCn비트와 ICESn비트가 각각 노이즈 제거 기능과 캡쳐 타이밍의 설정을 사용(타이머/카운터 레지스터에서 TCCRnB 참조) 입력캡쳐 유닛에 캡쳐 신호가 입력되면 타이머/카운터n의 TCNTn값이 ICRn에 복사되고 동시에 입력캡쳐 플래그 ICFn이 셋되어 입력캡쳐 인터럽트 요청

입력 캡쳐 유닛 블록도(n=1,3)

출력 비교 유닛 (Output Compare Unit) 레지스터 TCNTn과 출력비교 레지스터 OCRnx(x : A, B, C)는 16비트 비교기에 의해 계속 비교 TCNTn과 OCRnx값이 일치하면 OCFnx 플래그 비트가 다음 클럭에서 셋 되어 인터럽트 요청 OCFnx는 인터럽트처리가 실행되면 자동적으로 클리어 되지만, 소프트웨어적으로 0을 써주어도 클리어 TCNTn과 OCRnx의 값이 일치하면 WGMn3..0비트에 의해 설정된 파형 출력모드에 따라 Ocnx핀을 통해 파형 출력

출력 비교 유닛 블록도 (n=1,3 x=A,B,C)

출력비교변조기 (Output Compare Modulator) OCM은 반송 주파수(Carrier frequency)에 변조된 파형을 발생하는 기능 이 변조기는 16비트 타이머/카운터1의 출력비교 유닛C와 8비트 타이머/카운터2의 출력 비교 유닛의 출력 이용 변조기가 인에이블 되어 있으면 두개의 출력비교 채녈은 아래 그림과 같이 변조 출력비교 유닛 1C와 출력비교 유닛 2는 PB7 포트핀과 겸용으로 사용 출력비교 OC1C 또는 OC2 중에 하나가 인에이블 되어 있으면 이 핀을 통해 출력비교값이 출력 OC1C과 OC2가 동시에 인에이블 되어 있으면, 변조기는 자동으로 인에이블 되어 PORTB7의 값에 따라 OC1C와 OC2의 값이 합성되어 출력 OC1C 또는 OC2를 인에이블 시키는 경우에는 PORTB7을 출력으로 설정

출력비교변조기 구조

출력비교 변조기 출력 파형 구조