타이머 / PWM [마컴 예비레포트]
- 최초 등록일
- 2012.05.22
- 최종 저작일
- 2011.05
- 10페이지/ 한컴오피스
- 가격 1,000원
* 본 문서는 한글 2005 이상 버전에서 작성된 문서입니다.
한글 2002 이하 프로그램에서는 열어볼 수 없으니, 한글 뷰어프로그램(한글 2005 이상)을 설치하신 후 확인해주시기 바랍니다.
소개글
타이머 / PWM
목차
1. 실험 목적
2. 실험도구
⑴ JST-MEGA128-DEV5 키트
⑵ 기기와 호환 되는 PC
3. 이론
⑴ 타이머 / 카운터에 대한 간단한 필요한 지식
⑵ 듀티비 가변 PWM(타이머0)
⑶ 듀티비 가변 PWM(타이머1)
⑷ 주기, 듀티비 가변 PWM
4. 실험 소스 코드 분석
⑴ EXP05.1.asm
⑵ EXP05.2.asm
⑶ EXP05.3.asm
4. 실험 예상
⑴ Exp05.1.asm
⑵ Exp05.2.asm
⑶ Exp05.3.asm
본문내용
//TCCR0에서 WGM00, COM01, CS02, CS00 비트를 활성화
//WGM00만 활성화 되었으므로 PWM 모드를 실행한다.
//COM01만 활성화 되었으므로 상향카운터에서는 compare match에서 OC0를 0으로 클리어하고 하향카운터에서는 compare match에서 OC0을 1로 셋팅한다.
//CS02, CS01, CS00 이 101 이다. 101이면 클럭 소스의 기능은 clkTOS / 1124 이다.
LDI AL,0b00000000 ; use internal clock
OUT ASSR,AL
// ASSR 레지스터를 초기화 시킨다.
LOOP1: LDI CL,6 ; loop counter
LDI DL,0 ; initial OCR0 value
//CL에 6을 저장하고 DL에는 0을 저장한다.
LOOP2: OUT OCR0,DL ; set duty ratio = DL*2/510
LDI LCD_BUFFER,0xCA
; 텍스트 LCD 두 번째 줄에 10진수 3자리를 출력할 준비를 한다.
CALL LCD_COMMAND
CLR AH // AH레지스터 초기화
MOV AL,DL // DL을 AL에 비트를 복사한다.
CALL LCD_3DEC // 10진수 3자리를 호출한다.
CALL BEEP // 비프음 출력
CALL D5SEC
LDI AL,51 ; increment duty ratio by 20%, 51을 AL에 로드한다.
ADD DL,AL ; ( DL = DL + 51 )
DEC CL // CL을 감소한다.
BRNE LOOP2
//위의 결과의 Z플래그의 값이 0일 경우 LOOP2로 점프하고 0이 아니면 LOOP1로 넘어간다.
JMP LOOP1
참고 자료
없음