BASIC4MCU | 질문게시판 | 답변 : Atmega128, 블루투스 문제
페이지 정보
작성자 master 작성일2022-12-03 09:41 조회606회 댓글0건본문
#include <avr/io.h>
#define F_CPU 16000000UL
#define __DELAY_BACKWARD_COMPATIBLE__ // Atmel Studio 7을 사용하는 경우에 필요
#include <util/delay.h>
//
int hertz[]={1047,1175,1319,1397,1568,1760,1976,2093}; // 도~도 주파수,반올림하여 정수 표시
int loop[] ={1047,1175,1319,1397,1568,1760,1976,2093}; // 1초간 실행 횟수
volatile char rx_flag=0,melody=0;
//
//char getchar1(){ while(!(UCSR1A&0x80)); return(UDR1); }
void putchar1(char c){ while(!(UCSR1A&0x20)); UDR1=c; }
//
void buzzer(int hz,int count){
int i,ms,us ;
ms=1000/(2*hz);
us=(1000.0/(2*hz)-1000/(2*hz))*1000;
for(i=0;i<count;i++){
PORTE^=0x10; _delay_ms(ms); _delay_us(us);
PORTE^=0x10; _delay_ms(ms); _delay_us(us);
}
}
//
ISR(USART1_RX_vect){
char r;
r=UDR1; UDR1=r;
if((r>='1')&&(r<='8')){ melody=(r&0x0F)-1; rx_flag=1; }
}
//
int main(){
DDRE=0x10;
UCSR1B=0x98; UBRR1L=103; SREG=0x80; // 9600
while(1){
if(rx_flag){ rx_flag=0; buzzer(hertz[0],loop[0]); }
}
}
댓글 0
조회수 606등록된 댓글이 없습니다.