BASIC4MCU | 질문게시판 | 블루투스 관련 질문드립니다
페이지 정보
작성자 도리비 작성일2018-12-10 10:05 조회6,748회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=6653
본문
아래에서 스위치를 눌러서 작동은 잘 되는데 페어링 후 블루투스 수신이 안되는것 같아 질문 드립니다바쁘신데도 좋은 답변 항상 감사합니다jmod-128-1 과 jmod-bt-1 사용중입니다#include <avr/io.h>#define F_CPU 16000000UL#include <util/delay.h>#include <avr/interrupt.h>//#define TRIG1 PORTA|=0x40 // 트리거 출력 PA6#define TRIG0 PORTA&=~0x40#define ECHO (PINA&0x80) // Echo 입력 PA7//#define BIT4_LINE2_DOT58 0x28 // 4 Bit Mode,2 Lines,5x8 Dot#define DISPON_CUROFF_BLKOFF 0x0C // Display On,Cursor Off,Blink Off#define DISPOFF_CUROFF_BLKOFF 0x08 // Display Off,Cursor Off,Blink Off#define INC_NOSHIFT 0x06 // Entry Mode,Cursor Increment,Display No Shift#define DISPCLEAR 0x01 // Display Clear,Address 0#define CURHOME 0x02 // Cursor Home#define CUR1LINE 0x80#define CUR2LINE 0xC0//char CLCD_NUM[]="000.0";char state=0;int distance_1st,distance_2nd,height,number;//-------------------------------------------------void CLCD_cmd(char cmd){PORTC=cmd&0xf0; PORTD=0x10; _delay_us(1); PORTD=0;PORTC=cmd<<0x4; PORTD=0x10; _delay_us(1); PORTD=0; _delay_ms(5);}//void CLCD_data(char data){PORTC=data&0xf0; PORTD=0x14; _delay_us(1); PORTD=4;PORTC=data<<0x4; PORTD=0x14; _delay_us(1); PORTD=4; _delay_us(50);}//void CLCD_puts(char *s){ while(*s)CLCD_data(*s++); }//void CLCD_num_display(int n){CLCD_NUM[0]=(n/1000)%10+0x30;CLCD_NUM[1]=(n/100)%10+0x30;CLCD_NUM[2]=(n/10)%10+0x30;CLCD_NUM[3]='.';CLCD_NUM[4]=n%10+0x30;CLCD_NUM[5]=0; //nullCLCD_puts(CLCD_NUM);}//void init_CLCD(){_delay_ms(50);CLCD_cmd(BIT4_LINE2_DOT58); CLCD_cmd(DISPON_CUROFF_BLKOFF);CLCD_cmd(INC_NOSHIFT); CLCD_cmd(DISPCLEAR);}//-------------------------------------------------unsigned int read_distance(){unsigned int distance=0;TRIG1; _delay_us(10); TRIG0;while(!ECHO); TCNT1=0; TCCR1B=2; //0.5uswhile( ECHO); TCCR1B=0;distance=TCNT1;distance=(unsigned int)((float)distance/11.6);return(distance);}//-------------------------------------------------void menu0(){CLCD_cmd(DISPCLEAR);CLCD_cmd(CUR1LINE); CLCD_puts("If Ready");CLCD_cmd(CUR2LINE); CLCD_puts("Press Switch!");state=1;}//-------------------------------------------------void menu1(){distance_1st=read_distance(); //초음파센서CLCD_cmd(DISPCLEAR);CLCD_cmd(CUR1LINE); CLCD_puts("First: "); CLCD_num_display(distance_1st);state=2;}//-------------------------------------------------void menu2(){distance_2nd=read_distance(); //초음파센서CLCD_cmd(CUR2LINE); CLCD_puts("Second: "); CLCD_num_display(distance_2nd);state=3;}//-------------------------------------------------void menu3(){CLCD_cmd(DISPCLEAR);CLCD_cmd(CUR1LINE); CLCD_puts("Height: ");height=distance_2nd-distance_1st;if(height<0)CLCD_puts("Error!");else CLCD_num_display(height);state=0;}//-------------------------------------------------ISR(INT4_vect){_delay_ms(100); EIFR|=0x10; if(PINE&=0x10)return; // 채터링 return//-------------------------------------------------------------------switch(state){ // 스위치 누른 횟수case 0: menu0(); break;case 1: menu1(); break;case 2: menu2(); break;case 3: menu3(); break;}}//-------------------------------------------------void TX0_char(char c){ while(!(UCSR0A&0x20)); UDR0=c; }void TX0_STR(char *s){ while(*s)TX0_char(*s++); }//-------------------------------------------------ISR(USART0_RX_vect){ // 수신 인터럽트char r;r=UDR0;if(r=='0')menu0();if(r=='1')menu1();if(r=='2')menu2();if(r=='3')menu3();}책에선void init_uart1(){UCSR1B = 0x18;UCSR1C = 0x06;UBRR1H = 0;UBRR1L = 8;}의 코드와 송신, 수신하는 코드가 모두 들어있는데 위 프로그렘 에서는 이런 것들이 필요가 없나요?
댓글 0
조회수 6,748등록된 댓글이 없습니다.