디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

형들 avr studio로 초음파센서 코딩되있는건데 분석 좀..

01(211.108) 2010.06.06 14:00:44
조회 341 추천 0 댓글 6

#include <avr/io.h>
#include <avr/interrupt.h>

#define PE4_Clear (PORTE &= 0xEF)
#define PE4_Set  (PORTE |= 0x10)
#define PE4_IN  (DDRE &= 0xEF)
#define PE4_OUT  (DDRE |= 0x10)

#define LED_ON   (PORTA |= 0x01)
#define LED_OFF      (PORTA &= 0xFE)

#define TEMPERATURE 25

unsigned short tick=0, pulse_check=0, pulse_end=0;

void us_delay(unsigned int us_time)
{
 unsigned int i;

 for(i=0; i<us_time; i++) // 4 cycle +
 {
  asm("PUSH R0"); // 2 cycle +
  asm("POP R0");   // 2 cycle +
  asm("PUSH R0"); // 2 cycle +
  asm("POP R0");   // 2 cycle + =12 cycle for 11.0592MHZ
  asm("PUSH R0"); // 2 cycle +
  asm("POP R0");   // 2 cycle = 16 cycle = 1us for 16MHz
 }
}

void ms_delay(unsigned int ms_time)
{
    unsigned int i;
   
    for(i=0; i<ms_time;i++)
        us_delay(1000);
}


//========================================
// ultra sound
void init_EXT_INT(void)
{
 EIMSK |= (1<<INT4);  // INT4 Interrupt Set
 EICRB |= (1<<ISC41)|(1<<ISC40); //INT4 Rising Edge / Interrupt Set
 EIFR   = 1<<INT4;  // Interrupt Flag
}

void init_TIMER0_COMPA(void)
{
 TCCR0A |= (1<<WGM01); // CTC Mode
 TCCR0A |= (1<<CS01); // clk/8 Prescaler
 TCNT0 = 0;
 OCR0A = 19;    //1cycle->20us = 1/(16Mhz/(2*8*(19+1)))
 TIMSK0 = (1<<OCIE0A); // T/C0 Output Compare Match Interrup Enable
 TIFR0 = 0x00;
}

SIGNAL(TIMER0_COMP_vect) 
{
 tick++;   // 20usec 단위 업 카운트
}
  
SIGNAL(INT4_vect)
{
 unsigned short pulse_tick;

 pulse_tick = tick;

 if(EICRB & 0x03) // 
 {
    EICRB &= 0x00; // INT4 low state set
    tick = 0;  // tick clear
 }
 else
 {
  EICRB |= (1<<ISC41)|(1<<ISC40); //INT4 Rising Edge/Interrupt Set
  pulse_end = pulse_tick; // echo pulse count
 }
}

//======================================
// port init
void initPort(void)
{
 DDRA  = 0xff;
 DDRE  = 0xef;
 PORTE = 0x10;
}

void main(void)
{
 float distance;
 
 initPort();

 init_EXT_INT();
 init_TIMER0_COMPA();
 
 while(1)
 {
  cli();   // interrupt clear
  PE4_Clear;
  PE4_OUT;  // PE4 pin is output
  us_delay(500);

  PE4_Set;  // output set during 5us
  us_delay(5);

  PE4_Clear;  // output clear
  us_delay(100);

  PE4_IN;   // PE4 pin is input
  us_delay(100);

  sei();   // interrupt enable

  /* distance = velocity * time */

      distance=(331.5+(0.6*TEMPERATURE))*(pulse_end*0.00001/2)*1000;
  
  if(distance>500){   // 50~100cm
   if(distance<1500) LED_ON;
  }
  else LED_OFF;
 }
}

이 코딩 자세히 분석 좀 해주세요...
각 줄 당 해주시면...

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 주위 눈치 안 보고(어쩌면 눈치 없이) MZ식 '직설 화법' 날릴 것 같은 스타는? 운영자 24/04/29 - -
198059 한국전쟁에 많은 나라가 참여하였구나.. [3] Vita500갤로그로 이동합니다. 10.07.13 155 0
198057 님드랑 Ajax 짱 재밌네여. Ajax 하세여. [2] ㅋ?(121.101) 10.07.13 98 0
198055 앞으로 모바일웹이 [10] monoless갤로그로 이동합니다. 10.07.13 148 0
198054 디씨 접는다는 애들 봐라... [1] 종이접기(121.182) 10.07.13 98 0
198052 갤럭시 S 어플은 어떤 언어로 만들어? [13] 존슨바우어갤로그로 이동합니다. 10.07.13 262 0
198051 저 인턴중인데.. 여기 회사 모바일쪽으로 대박하나 터질듯; [8] ㅋ?(121.101) 10.07.13 154 0
198050 현직 형아들..일하면서 공부하는거 불가능한가여? [7] ddd(121.140) 10.07.13 151 0
198049 ajax, jquery, javascript 이거 구분 하는 방법 없을까 [9] ㅋ?(121.101) 10.07.13 108 0
198046 온라인 카오스 스크린 경마게임 [2] Vita500갤로그로 이동합니다. 10.07.13 187 0
198045 게임 프로그래머가 되고픈 애들은 필독해라 [4] 아주아슬갤로그로 이동합니다. 10.07.13 229 0
198044 혹시 이 게임 기억나는 형 있음? [3] (125.177) 10.07.13 117 0
198042 서버면 다 똑같은 서버임? [3] 하앍하앍(123.199) 10.07.13 82 0
198041 어이없고 소름돋는 이야기 [8] 어떡해갤로그로 이동합니다. 10.07.13 155 0
198040 아 게임 프로그래머 되고 싶은데 [3] (211.222) 10.07.13 120 0
198036 형들아 html 태그 관련된거 같은데 질문하나만~ [2] 멍멍구조(58.141) 10.07.13 63 0
198034 안녕형들 프갤 늅늅이야 질문점! [3] 늅늅(121.139) 10.07.13 49 0
198033 프갤 고수님들이 생각하는 모바일 시장 구도는? [3] 모빌(125.177) 10.07.13 74 0
198032 나의 글에는 물리적 모순이 없다. [3] 123ㅁㄴㅇㄴ(211.216) 10.07.13 84 0
198029 구입전에 읽어봐야 할 듯. 때릴꺼야?(119.67) 10.07.13 80 0
198028 C언어 두꺼운 정석책이 뭐야? [5] 쏭사리(121.147) 10.07.13 158 0
198027 걱정이다... [12] 나는누구?(115.138) 10.07.13 126 0
198025 전에 프로젝트 뛸때 디자이너가 필요해서 dd(125.177) 10.07.13 51 0
198024 주석 잘 다는 법에 대한 책 [2] ㅇㅇㅃ갤로그로 이동합니다. 10.07.13 188 1
198022 개발하는 여자 만나고 싶다. [3] dd(125.177) 10.07.13 164 0
198020 비쥬얼 스튜디오 2010 Express에서 C프로그램 실행시... [3] 유펄스트(203.250) 10.07.13 505 0
198019 어릴때 프로그래머하면 얘를 떠올려야지 [2] junon갤로그로 이동합니다. 10.07.13 158 0
198013 아 역시 머리에 남는구나. [1] ㅁㅁ(116.44) 10.07.13 85 0
198012 아 아무리 생각해도 기억이 안나 [2] ㅁㅁ(116.44) 10.07.13 96 0
198011 갤럭시S 하루 사용 소감 (아이폰과 비교) [10] gisman갤로그로 이동합니다. 10.07.13 338 0
198008 횽들 솔루션 구매 의사도 있으신가요? <<< 이말은 뭔 뜻임? [4] 뭥미(211.254) 10.07.13 100 0
198007 꼭 일반인들은 프로그래머를 오타쿠랑 동급하더라 [1] 흠점무갤로그로 이동합니다. 10.07.13 127 0
198006 나는 기계하는 전자과학생 [5] foriequal0갤로그로 이동합니다. 10.07.13 194 0
198005 고수님들 질문좀 감히 드리겠습니다.. [2] ㅇㅇ(211.33) 10.07.13 81 0
198004 Hello, World에서 World는 first name이다. [1] 뻘글(121.182) 10.07.13 111 0
198001 프로그래머들은 성격이 왜이렇게 까칠한가요? [8] 흠점무갤로그로 이동합니다. 10.07.13 253 0
198000 Hello, world에서 world가 사람 이었구나... [3] 물속의다이아갤로그로 이동합니다. 10.07.13 178 0
197999 공부좀 해볼려하는데 API해야댐? [4] ㅋㅋㅁ(113.59) 10.07.13 130 0
197998 정보보안 쪽으로 가려면 컴공으로 가야해? 정보경영공학부로 가야해? [7] 컴공질문(121.138) 10.07.13 258 0
197997 씬횽 뇌자알 질문입니다. [5] 세타(121.127) 10.07.13 150 0
197996 형들 초본데 질문 좀.. [5] ㅇㅇ(116.44) 10.07.13 116 0
197995 선거하는 개새끼 빡친다. [5] 머그컵갤로그로 이동합니다. 10.07.13 148 0
197994 스마트폰용 애플리케이션 개발자 구합니다 [14] 뭥미(211.254) 10.07.13 282 0
197993 난 ㅇㅇㅇ이 누군지 알거같어 [2] 햏햏했갤로그로 이동합니다. 10.07.13 146 0
197992 소스오류 제발좀 찾아주세요 [3] 초보(168.131) 10.07.13 86 0
197991 은나노·스팀 세탁 아무 효과 없다 [8] Vita500갤로그로 이동합니다. 10.07.13 197 0
197989 ㅇㅇㅇ 영어 잘하네 [3] ㅇㅇㅇ(218.55) 10.07.13 132 0
197988 lgcns 라는 회사에 외근나와있는데.... [6] 주방아가씨갤로그로 이동합니다. 10.07.13 275 0
197987 이게 무슨말일까 [9] 양희철갤로그로 이동합니다. 10.07.13 219 0
197986 구석횽의 글을보니 옛날 일이 생각난다. [4] 모할까?갤로그로 이동합니다. 10.07.13 122 0
197983 근데 ㅇㅇㅇ은 도대체 [5] ∫ 2t dt=t²+c갤로그로 이동합니다. 10.07.13 137 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2