BASIC4MCU | 질문게시판 | 답변 : ATmega128 / HC-05블루투스 시리얼 모듈을 사용한 블루투스 통신 질문 있습니다..
페이지 정보
작성자 master 작성일2021-12-02 09:23 조회1,357회 댓글1건본문
#include <avr/io.h>
#include <avr/interrupt.h>
//
#define F_CPU 16000000UL
#define __DELAY_BACKWARD_COMPATIBLE__ // Atmel Studio 7을 사용하는 경우
#include <util/delay.h>
//
#define ON 1
#define OFF 0
//
#define N4 0
#define DO 1
#define RE 2
#define MI 3
#define FA 4
#define SOL 5
#define RA 6
#define SI 7
#define DDO 8
//
char f_table[]={0,17,43,66,77,97,114,117,137}; // 묵음과 음계에 해당하는 TCNT0값
//char f_table[]={1047,1175,1319,1397,1568,1760,1976,2093};
//
volatile unsigned char rx,tone;
//
void putchar1(char c){ while(!(UCSR1A &(1<<UDRE1))); UDR1=c; }
char getchar1(void ){ while(!(UCSR1A &(1<<RXC1))); return(UDR1); }
//
ISR(TIMER0_OVF_vect){
if(tone){ TCNT0=f_table[tone]; PORTE^=0x10; } //버저 토글
}
//
int main(){
char c;
DDRE=0x10;
TCCR0=0x03; TIMSK=0x01; // 오버플로우 인터럽트
UCSR1B=0x18; UBRR1L=8; // 16Mhz,115200 baud(주의:초기 셋팅 값 확인)
sei();
while(1){
c=getchar1();
putchar1(c);
if((c>='0')&&(c>='8')){
tone=c&0x0F; TCNT0=f_table[tone];
_delay_ms(500); tone=0; // 500ms 후 OFF
}
}
}
'0'은 묵음이고 '1'부터 도~ 입니다.
댓글 1
조회수 1,357범용직렬버스장치님의 댓글
범용직렬버스장치 작성일아하.... 도움 감사드립니다!! 다음 단계로 넘어가볼 수 있도록 노력해보겠습니다!!