BASIC4MCU | 질문게시판 | 답변 : 수동부저와 uart통신 알수없는 오류때매 미치겟습니다
페이지 정보
작성자 master 작성일2019-12-27 22:14 조회6,752회 댓글1건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=11430
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2019-12-27 오후 10:15:25// by Ok-Hyun Park//#define F_CPU 16000000UL#include <avr/interrupt.h>#include <avr/io.h>#include <util/delay.h>//#define SIG0 PINA2#define SIG1 PINA4#define SIG2 PINA6//#define DO 0#define RE 1#define MI 2#define FA 3#define SOL 4#define RA 5#define SI 6#define DDO 7#define EOS -1 // End Of Song//#define ON 0#define OFF 1//volatile int song[]={SOL,MI,MI,SOL,MI,DO,RE,MI,RE,DO,MI,SOL,DDO,SOL,DDO,SOL,DDO,SOL,MI,SOL,RE,FA,MI,RE,DO,EOS};volatile char f_table[8]={17,43,66,77,97,114,117,137};volatile char flag=0;volatile int i=0,state,tone=0;//void uart0_tx(char d){ while(!(UCSR0A&(1<<UDRE0))); UDR0=d; }char uart0_rx(void){ while(!(UCSR0A&0x80)); return UDR0; }//ISR(TIMER0_OVF_vect){TCNT0=f_table[tone]; // 산토끼state^=1;if(state)PORTB|=(1<<4);else PORTB&=~(1<<4);}//void san_to_ki(){tone=0; TCCR0=3;TCNT0=f_table[song[i]];do{ _delay_ms(300); tone=song[i++]; } while(tone!=EOS);TCCR0=0;}//int main(void){char sensor;DDRB=0x10;TIMSK=0x01;UCSR0B=0x18; UBRR0L=103; // 9600sei();while(1){sensor=PINA&0x54;if(sensor)_delay_ms(2000);//switch(sensor){case 0b01010100: uart0_tx('d'); break; //san_to_ki();case 0b00010100: uart0_tx('c'); break;case 0b00000100: uart0_tx('b'); break;case 0b00000000: uart0_tx('a'); break;default: uart0_tx('e'); break;}}}
댓글 1
조회수 6,752안녕요들님의 댓글
안녕요들 작성일
i = 0; 을 santoki 처음부분에 넣으면 해결이 되더라구요,,,
덕분에 해결하였습니다.. ㅠㅠ 깔끔한 코드도 감사합니다.