• [일상 이야기] 아트메가 하시는분 계신가요2012.10.30 PM 02:44

게시물 주소 FONT글자 작게하기 글자 키우기


소스가 있는데 소스만 봐서는 어디다 연결해야할지 모르겠네요.

초음파 센서랑, DC모터인데, 소스 안에 보면 연결하라는 포트가 있다고 해서 그냥 지인한테 소스 째로 받았는데

막상 받고나니 어디다 연결해야할지 모르겠네요.

====================================
//AVRStudio

//AVRStudio

#include
#include
#include

//
//#define Trigger PORTC.0 //초음파 트리거
//#define Echo PINC.1 //초음파 에코
//
char s[30];
unsigned int range_I;
float range_F;
unsigned int range_II;
int k;

void TX0_CH(char ch){ while(!(UCSR0A&0x20)); UDR0=ch; } // 송신함수
//
void getEcho(void)
{
while((PINC&0x02)==0x00) // Wait for echo pin to go high
TCNT1=0; TCCR1B=2; // 1:8 prescaler = 0.5us
while((PINC&0x02)==0x02); // Wait for echo pin to go low
TCCR1B=8; range_I=TCNT1; // the range in CM
range_F=(float)range_I;
range_F/=11.6; // mm
range_I=(unsigned int)range_F/10;
}

//

int main(void)
{
unsigned int i;
DDRC=0x01; // PC0 ouput Trigger, PC1 -nput Echo
UCSR0B=8; UBRR0H=0; UBRR0L=103; //9600, 송신
TCCR1A=0; TCCR1B=8; // Set timer up in CTC mode
_delay_ms(100);

while(1)
{
//PORTC=0x01; _delay_us(10); PORTC=0x00; // 10uS
for(k=0;k<64;k++)
{
getEcho(); _delay_ms(1); range_II+=range_I;
}

range_II/=64;

sprintf(s,"%u cm\r\n", range_II);


if(range_II<20) //제동거리
{PORTB=0x01;
_delay_ms(1000);
PORTB=0x00;}
else
{PORTD=0x01;
_delay_ms(1000);
PORTD=0x00;}

i=0; while(s[i])TX0_CH(s[i++]);


_delay_ms(10000);
}

}
댓글 : 6 개
아트메가 128책 보면 저기 핀셋 번호별 RX TX 정보 나와 있는 걸루 5년 전에 본듯... 암튼 인베디드 하시나보네요 고생길이 열릴듯
대문자로 정의되서 돌아가는것들 참고하시면 될 것 같습니다 .꾸벅
자세한건 avr/io.h 관련 찾아보세요
ㄴ아니요 ㅠㅠ 기계공도린데, 마지막 전자부분인데 아 이부분 왜 손댔는지 싶네요 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

RS232는 수신만 되게 설정되어있고
모터 동작은
PB.0번핀
PD.0번핀
으로 동작시키는게 아닐까 생각됩니다.

자세한건 모터나 초음파 센서에 대한 데이터시트를 보며
확인해보셔야할것 같네요.
모터나 센서마다 구동방식들이 다르거든요.
ㄴ감사합니다. :)
아.. 전산하시는분이 아니군요..ㅡ.ㅡ 데굴데굴.. ㅋ
친구글 비밀글 댓글 쓰기

user error : Error. B.