BASIC4MCU | 질문게시판 | 답변 : OC2 가 작동이 안됩니다,,
페이지 정보
작성자 master 작성일2019-12-23 16:35 조회2,933회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=11308
본문
//#define F_CPU 16000000UL#include <avr/io.h>#include <util/delay.h>#include <avr/interrupt.h>//void motor_init(void){DDRB=0xFF;TCCR0= 1<<COM01 | 1<<WGM00 | 1<<WGM01 | 1<<CS02 | 1<<CS01; // OC0 FAST PWM//TCCR2= 1<<COM21 | 1<<WGM20|1<<WGM21 | 1<<CS22; // OC2 FAST PWM}//void go_straight(int speed){ OCR0=speed; OCR1A=speed; }void go_right (int speed){ OCR0=speed/2; OCR2=speed; }void go_left (int speed){ OCR0=speed; OCR2=speed/2; }void go_stop ( ){ OCR0=0; OCR2=0; }//int main(void){uart_init();motor_init();//DDRB=0x20; TCCR1A=0x82; TCCR1B=0x1B; OCR1A=2; ICR1=12499;//EICRB=3; EIMSK=0x10; EIFR=0x10;DDRA=(PORTA&~(1<<PA1))|1<<PA0; //PA0(Trigger)???,PA1(Echo)???TCCR1A=0x40; TCCR1B=0x08; //WGM13: 0=(0,1,0,0)CTC modewhile(1){go_straight(100); _delay_ms(1000);go_straight(100); _delay_ms(1000);go_stop(); _delay_ms(1000);go_right(100); _delay_ms(1000);}}
void motor_init(void){DDRB=0xFF;TCCR0= 1<<COM01 | 1<<WGM00 | 1<<WGM01 | 1<<CS02 | 1<<CS01; // OC0 FAST PWM//TCCR2= 1<<COM21 | 1<<WGM20|1<<WGM21 | 1<<CS22; // OC2 FAST PWM}타이머2 설정이 없으니 OC2 출력이 나오지 않는 것이 정상이죠
void go_straight(int speed){ OCR0=speed; OCR1A=speed; }전진에는 타이머1이 섞여 있으니 타이머2로 변경하세요
댓글 0
조회수 2,933등록된 댓글이 없습니다.