안녕하세요 오늘은 Phase Correct PWM (위상 교정 PWM) 모드에 대해 알아보겠습니다.
이 모드는 TCNT0이 0x00에서 0xff까지 증가하였다가 다시 0xff에서 0x00으로 감소하는 동작을 반복합니다.
이때 TCNT0이 OCR0과 같아지면 OC0의 파형이 변합니다.
Phase Correct PWM모드는 잘 사용하지 않는 모드이므로 CTC모드와 FAST PWM모드를 안다는 전재하에 글을 작성합니다.
TCCR0레지스터중 3,6번비트
COM01 COM00이 10일때 내려갈때 1 올라갈때 0 인것을 확인할 수 있습니다.
TCCR0의 4,5번비트
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <stdlib.h> #include <stdio.h> #define F_CPU 16000000UL SIGNAL(SIG_OUTPUT_COMPARE0) { } int main(void) { TCCR0= 0x61; OCR0 = 17; SREG=0x80; TIMSK = 0x02; DDRB=0xff; while(1) { } } | cs |
COM01 COM00은 1 0 을 사용했으므로 내려갈때1 올라갈때0입니다.
이런 파형이 예상됩니다.
위의 코드의 실제 OC0출력 파형입니다.
'아트메가 > 이론' 카테고리의 다른 글
ATMEGA128 TWI(I2C)통신 알아보기 1편 (0) | 2022.09.10 |
---|---|
아트메가128 타이머/카운터0 주파수 알아보기 (2) | 2017.10.01 |
아트메가128 타이머/카운터0 Fast PWM모드 알아보기 (1) | 2017.09.28 |
아트메가128 타이머/카운터0 CTC 모드 알아보기 (0) | 2017.09.27 |
아트메가128 타이머/카운터0 compare match interrupt사용하기 (0) | 2017.09.26 |