BASIC4MCU | 센서 | 초음파센서 | SRF-04 (SRF-05, HC-SR04) 초음파센서 인터럽트로 읽기 - 8비트 타이머
페이지 정보
작성자 키트 작성일2017-08-23 15:00 조회2,244회 댓글0건본문
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 //=====================================================================//// 코드비젼 컴파일러//=====================================================================//#include <mega128.h> //16MHz#include <delay.h>//bit flag=0;char mm=0;int triger_cnt=0,cm=0;float dist=0;//interrupt [TIM0_COMP] void timer0_comp_isr(void){ //58uscm++;//if (triger_cnt==0){ PORTA|= 1; OCR0= 19; } // triger onelse if(triger_cnt==1){ PORTA&=~1; OCR0=115; EICRB=3; } // triger off//if(++triger_cnt>=862)triger_cnt=0; //58us*862=49996us=49.996ms}//interrupt [EXT_INT4] void ext_int4_isr(void){ //에코 PE4if(EICRB==3){ mm=TCNT0=0; cm=0; }else { mm=TCNT0; dist=cm; flag=1; }EICRB^=1;}//void main(void){DDRA=1; //트리거TCCR0=0x0A; OCR0=115; TIMSK=0x02; //16000000/8/(1+115),58usEICRB=0x03; EIFR=0x10; EIMSK=0x10; SREG=0x80;while(1){if(flag){ flag=0; dist+=(float)mm*0.0086206896551724137931; }}}//=====================================================================////=====================================================================//// AVRstudio//=====================================================================//#define F_CPU 16000000UL // 16 MHz#include <avr/io.h>#include <util/delay.h>#include <avr/interrupt.h>//volatile unsigned char flag=0,mm=0;volatile unsigned int triger_cnt=0,cm=0;volatile float dist=0;//ISR(TIMER0_COMP_vect){ //58uscm++;//if (triger_cnt==0){ PORTA|= 1; OCR0= 19; } // triger onelse if(triger_cnt==1){ PORTA&=~1; OCR0=115; EICRB=3; } // triger off//if(++triger_cnt>=862)triger_cnt=0; //58us*862=49996us=49.996ms}//ISR(INT4_vect){ //에코 PE4if(EICRB==3){ mm=TCNT0=0; cm=0; }else { mm=TCNT0; dist=cm; }EICRB^=1;}//int main(void){DDRA=1; //트리거TCCR0=0x0A; OCR0=115; TIMSK=0x02; //16000000/8/(1+115),58usEICRB=0x03; EIFR=0x10; EIMSK=0x10; SREG=0x80;while(1){if(flag){ flag=0; dist+=(float)mm*0.0086206896551724137931; }}}//=====================================================================/cs 잘 동작 하는지 체크 해보세요^^
댓글 0
조회수 2,244등록된 댓글이 없습니다.