BASIC4MCU | 질문게시판 | 아트메가128 pwm신호 반송주기 질문있어요
페이지 정보
작성자 썰지 작성일2019-04-19 15:08 조회7,882회 댓글3건본문
Fast PWM의 OCn 주파수는
f=CPU클록/(256*분주비)
Phase correct PWM의 OCn 주파수는
f=CPU클록/(510*분주비)
이렇게 되는데 분주비는 일정한 값이 정해져 있잖아요(8,32,64,....)
그러면 OCn 으로 원하는 주파수를 모두 만들어 낼 수는 없는게 맞나요?
제 생각이 맞다면(OCn의 주파수가 분주비에 따라 정해져 있는거라면)
예를 들어 (분주비에 없는) 70의 분주비로 계산했을때 Fast PWM의 주파수 892.85hz
뭐 이런 형태로 반송주파수를 만드는 방법이 따로 있는건지 궁금합니다.
댓글 3
조회수 7,882master님의 댓글
master 작성일
분주비가 (8,32,64,....) 이런식이라면
당연히 원하는 주파수를 모두 만들어 낼 수는 없습니다.
STM32 경우에는 분주비를 자유롭게 설정 가능하지만 이또한 모든 주파수를 만들수 있는 것은 아닙니다.
AVR에 비해서 훨씬 다양한 주파수를 만들 수 있긴 하죠
master님의 댓글
master 작성일
892.85hz
만들려는 주파수가 이 것인가요?
타이머1을 사용해서 만들어보세요
분주비 종류는 타이머0보다 적지만
16비트를 사용하므로 훨씬 다양한 주파수를 만들 수 있습니다.
892.85Hz
https://www.basic4mcu.com/bbs/board.php?bo_table=gesiyo6&wr_id=137
이 모드의 PWM을 사용하면
TCCR1A=0x82; TCCR1B=0x19; ICR1=15999; // 1ms // 16000000Hz/1/(1+15999)=1000Hz
892.85Hz를 만들려면 16000000Hz/1/892.85Hz=17920.14336114689
TCCR1A=0x82; TCCR1B=0x19; ICR1=17919; // 16000000Hz/1/(1+17919)=892.8571428571429Hz
썰지님의 댓글
썰지
답변 감사합니다.