질문게시판 > 답변 : ATMEGA128A 질문있습니다 수정자료

인기검색어 > 아두이노 센서 ATMEGA128

최신글 질문게시판 동영상강좌 가입하기

▼ BASIC4MCU 후원업체 신제품 정보 ▼

▲ BASIC4MCU 후원업체 신제품 정보 ▲

BASIC4MCU > 질문게시판

답변 : ATMEGA128A 질문있습니다 수정자료

페이지 정보

작성자 master 작성일18-12-16 08:04 조회9,166회 댓글2건

본문

 

// DateTime : 2018-12-16 오전 8:07:00
// by Ok-Hyun Park
//
#include <io.h>
//
typedef enum{ra_1,si_1,do_2,re_2,mi_2,fa_2,sol_2,ra_2,highmelody_code//high: 불가청 음역대 쉼표 표시
typedef enum{tf,f,sf,o,tspeed_code// 1/4,1/2,3/4,1,2
//
const char clock_set[]={0x6F,0x6E,0x6E,0x6E,0x6E,0x6E,0x6E,0x6E,0x6A};
const char ocr0_set[] ={142,253,238,212,189,179,159,142,1};
const int  timer[]    ={188,375,563,750,1500}; // 단위: ms
const char led[]      ={0x01,0x03,0x07,0x0f,0xff};
const char oct[]      ={0x06,0x06,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x00};
const char scale[]    ={0x77,0x39,0x06,0x4f,0x6d,0x7d,0x7f,0x77,0x00};
//
typedef structmelody_code melody;  speed_code speed;} MUSIC_CODE;
//
#define LENGTH  99
//
const MUSIC_CODE musicCode1[LENGTH]={
  {sol_2,o},{mi_2,o},{do_2,o},{high,o},{re_2,sf},{mi_2,tf},{fa_2,f},{re_2,f},{si_1,o},{high,o}, // 즐겁게 춤을추다가
  {do_2,o},{do_2,f},{do_2,f},{mi_2,o},{mi_2,o},{sol_2,f},{high,f},{high,o},{high,t},            // 그대로 멈춰라
  {sol_2,o},{mi_2,o},{do_2,o},{high,o},{re_2,sf},{mi_2,tf},{fa_2,f},{re_2,f},{si_1,o},{high,o}, // 즐겁게 춤을추다가
  {ra_1,o},{ra_1,f},{ra_1,f},{si_1,o},{si_1,o},{do_2,f},{high,f},{high,o},{high,t},             // 그대로 멈춰라
  {ra_2,o},{ra_2,o},{ra_2,f},{ra_2,f},{ra_2,f},{ra_2,f},                                        // 눈도 감지말고
  {sol_2,o},{sol_2,f},{sol_2,f},{sol_2,o},{sol_2,o},                                            // 웃지도 말고
  {fa_2,o},{fa_2,f},{fa_2,f},{fa_2,o},{fa_2,o},                                                 // 울지도 말고
  {mi_2,f},{mi_2,f},{fa_2,f},{fa_2,f},{sol_2,f},{high,f},{high,o},                              // 움직이지마
  {sol_2,o},{mi_2,o},{do_2,o},{high,o},{re_2,sf},{mi_2,tf},{fa_2,f},{re_2,tf},{si_1,o},{high,o},// 즐겁게 춤을추다가
  {do_2,o},{do_2,tf},{do_2,f},{mi_2,o},{mi_2,o},{sol_2,f},{high,f},{high,o},{high,t},           // 그대로 멈춰라
  {sol_2,o},{mi_2,o},{do_2,o},{high,o},{re_2,sf},{mi_2,tf},{fa_2,f},{re_2,f},{si_1,o},{high,o}, // 즐겁게 춤을추다가
  {ra_1,o},{ra_1,f},{ra_1,f},{si_1,o},{si_1,o},{do_2,f},{high,f},{high,o},{high,t}              // 그대로 멈춰라
};
//
int ms=0;
//
interrupt[TIM2_COMP]void isr_timer2_comp(){
  ms++;
}
//
void main(){
  int k;
  DDRB=0x10;  DDRA=0XFF;  DDRC=0xFFDDRG=0x0F;
  TCCR2=0x0BOCR2=249;  TIMSK=0x80//16000000/64/(1+249),1ms
  SREG=0x80;
  while(1){
    for(k=0;k<=98;k++){
      ms=0;
      while(timer[musicCode1[k].speed]>ms){                     // 박자 조절
        OCR0=ocr0_set[musicCode1[k].melody];
        TCCR0=clock_set[musicCode1[k].melody];
        PORTA=led[musicCode1[k].speed];                         // led 박자 길이 표시
        if(ms&1){ PORTC=oct[musicCode1[k].melody];   PORTG=8; } // 옥타브 표시
        else    { PORTC=scale[musicCode1[k].melody]; PORTG=1; } // 음계 표시
      }
    }
  }
}

 

몇가지 오류를 체크 했지만 정상동작할런지는 모르겠습니다.

원본 소스 출처에서 정상동작하는 소스인지 확인 해보세요

 

16비트 타이머로 만든 멜로디 예제를 공부해서 만드는 것이 빠를 수도 있겠습니다.

https://www.basic4mcu.com/bbs/board.php?bo_table=gesiyo9&wr_id=138 

게시판에 몇개의 글이 더 있습니다.

 

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기
  • 카카오톡으로 보내기

댓글 : 2

조회수 : 9,166

헤헿헿님의 댓글

헤헿헿 작성일

감사합니다 드디어 해결됬네요 ㅠ
if(ms & 1) 에서 &가 어떻게 동작하는지만 마지막으로 설명해주실 수 있나요

master님의 댓글

master 댓글의 댓글작성일

ms&1
ms가 1이면 결과는 1
ms가 0이면 결과는 0

        if(ms&1){ PORTC=oct[musicCode1[k].melody];  PORTG=8; } // 옥타브 표시
        else    { PORTC=scale[musicCode1[k].melody]; PORTG=1; } // 음계 표시
ms가 홀수면 옥타브표시
짝수면 음계표시

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[28] master  17-10-29
질문 아두이노 코딩 질문 첨부파일pmh11 새글 23-04-01
질문 라즈베리 파이 질문 댓글[1] rasp 새글 23-03-31
질문 아두이노 코드관련 질문 댓글[1] 왕초봉 새글 23-03-31
질문 아두이노 led 부저 스위치 김똘  23-03-30
답변 답변 : 아두이노 led 부저 스위치 댓글[4] master  23-03-30
질문 아두이노 근접센서 2개 연결 질문 댓글[1] 김민종  23-03-29
질문 아두이노 코딩 에러 질문 댓글[1] 첨부파일박무농  23-03-25
질문 아두이노를 이용한 타이머, 태양전지 제어 댓글[2] 박무농  23-03-25
질문 sd카드 이미지 전송 댓글[2] 던지기마스터  23-03-24
질문 초음파센서를 이용한 모터제어 질문있습니다. 댓글[3] 첨부파일뉴비에오  23-03-24
질문 부품 관련 문의 댓글[1] 타코  23-03-23
질문 모터 작동 시, 일부 모듈이 꺼지는 현상에 대해 질문드… 그렇찌  23-03-22
답변 답변 : 모터 작동 시, 일부 모듈이 꺼지는 현상에 대… master  23-03-23
질문 ESP로 원격 모터제어를 할 수 있나용? 댓글[1] 비차  23-03-22
질문 HC06을 마스터로 설정하면 HC06끼리만 통신되나요? 댓글[4] 비차  23-03-21
질문 아두이노 제어하기 댓글[3] 매드닥터  23-03-19
질문 atmega128 압력센서 관련 질문입니다 댓글[1] 공린이  23-03-19
질문 아두이노 스텝모터 각도제어 질문 댓글[3] master  23-03-17
질문 아두이노와 파이썬(중점좌표) 시리얼 통신 질문드립니다. 댓글[1] 첨부파일아두이노어렵잖아  23-03-16
질문 아두이노 3LED 버튼 관련 질문 댓글[1] 이츤  23-03-16
질문 ATmega328p로 pca9685를 이용하여 서보모터… 댓글[1] 첨부파일토비  23-03-15
질문 hm-10 다중연결 질문있습니다. 댓글[1] 첨부파일뉴비에오  23-03-14
질문 while loop 실행 속도 댓글[1] 412904  23-03-12
질문 AND 연산 질문드립니다. 댓글[1] 412904  23-03-11
질문 아두이노 테트리스 게임 댓글[1] 첨부파일지욱애  23-03-02
질문 아두이노우노 블루투스 2개 연결 댓글[1] dsfadfs  23-02-28
질문 스텝모터 코딩 질문입니다.. 댓글[2] 무야더싱  23-02-25
질문 아두이노 나노33 IOT 의 BLE 연결 문제 가루밀  23-02-24
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전