BASIC4MCU | 질문게시판 | 타이머/카운터 각각다른 듀티비 출력
페이지 정보
작성자 wannabe 작성일2020-06-15 18:20 조회6,588회 댓글3건본문
첨부한 사진처럼 하드웨어 타이머/카운터 모듈을 이용하여 PB0, 1, 2, 3의 듀티비가 서로 다르게 출력되도록 코딩을 짜고싶은데 어떻게 할지 감이 안잡힙니다 도와주세요 ㅠㅠ
사용 프로그램은 Atmel Studio 7.0이고 Atmaga 128을 사용합니다!
비트수는 아마 8bit를 사용하는것 같은데 적용 되는 걸로 부탁드립니다..
도와주세요 ㅠㅠ
댓글 3
조회수 6,588master님의 댓글
master 작성일
80KHz는 12.5us 주기입니다.
PB0~PB3은 타이머 출력이 없습니다.
GPIO로 PWM출력을 하려면 PWM주기가 아주 길 때만 가능합니다.
master님의 댓글
master 작성일
while(1){
PORTB=0b00001000;
PORTB=0b00001100;
PORTB=0b00001110;
}
이 출력은 FAST PWM은 아니고 GPIO로 PWM 출력을 하는 것인데
80KHz보다 더 높은 주파수를 출력할 수 있을 것입니다.
루프문 특성 상 마지막 출력의 주기가 길텐데요
while(1){
PORTB=0b00001000;
_delay_us(3);
PORTB=0b00001100;
_delay_us(3);
PORTB=0b00001110;
_delay_us(1);
}
적당히 딜레이값을 조절해서 12.5us 주기에 비슷하도록 만들어보세요
더 세밀한 딜레이 값을 위해서
인라인 어셈블리어인 NOP 명령을 사용하면 1/16us 딜레이를 사용할 수 있습니다.
wannabe님의 댓글
wannabe 작성일감사합니다!