BASIC4MCU | 질문게시판 | 아트메가128/ srf05 초음파센서를 이용한 타이머 인터럽트 질문입니다
페이지 정보
작성자 아트메가넘어려워 작성일2022-05-26 14:10 조회397회 댓글0건본문
#include <avr/io.h>
#define F_CPU16000000UL
#include <util/delay.h>
unsigned int distance, i;
volatile int count=0, value=0;
#define TRIG 6
#define ECHO 7
#defineSOUND_VELOCITY340UL
#define STOP_SPEED 00
#define LOW_SPEED 77
#define MID_SPEED 153
#define HIGH_SPEED 225
#define MOTOR_CW 0xa0
#define MOTOR_CCW 0x60
#define MOTOR_BRAKE 0xe0
#define MOTOR_STOP 0x00
int motor_speed[4]={STOP_SPEED,LOW_SPEED,MID_SPEED,HIGH_SPEED};
int main(void)
{
DDRB=0xff;
DDRE=((DDRE | (1<<TRIG))&~(1<<ECHO));
TCCR2=0x6c;
PORTB=MOTOR_CW;
while (1)
{
TCCR1B=0x03;
PORTE&=~(1<<TRIG);
_delay_us(10);
PORTE|=(1<<TRIG);
_delay_us(10);
PORTE&=~(1<<TRIG);
while(!(PINE&(1<<ECHO)))
;
TCNT1=0X0000;
while(PINE&(1<<ECHO))
;
TCCR1B=0X00;
distance=(unsigned int)(SOUND_VELOCITY*(TCNT1*4/2)/1000);
if (distance <100)
{
OCR2=motor_speed[0];
}
else if (distance < 300)
{
OCR2=motor_speed[1];
}
else if (distance < 500)
{
OCR2=motor_speed[2];
}
else OCR2=motor_speed[3];
}
}
현재 초음파 센서를 이용해 모터 속도를 조절하는 코드를 작성중인데 여기서 초음파 센서의 delay 코드를 타이머 인터럽트 쪽으로 바꾸는식으로 코드를 짜고싶은데 막혀서 질문 드립니다
댓글 0
조회수 397등록된 댓글이 없습니다.