질문게시판 > 답변 : ATMEGA128A timer 관련 질문있습니다.

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

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

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

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

BASIC4MCU > 질문게시판

답변 : ATMEGA128A timer 관련 질문있습니다.

페이지 정보

작성자 master 작성일18-12-15 17:05 조회4,452회 댓글1건

본문

 

// DateTime : 2018-12-15 오후 5:09:01
// by Ok-Hyun Park
//
#include <io.h>
//
#define LENGTH  99
//
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;
//
const char clock_set[]={7,6,6,6,6,6,6,6,2};
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 struct{
  melody_code melody;
  speed_code speed;
MUSIC_CODE;
//
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 timer2_flag;
int ms=0;
//
interrupt[TIM2_COMP]void isr_timer2_comp(){
  timer2_flag=1;
  if(++ms>1000)ms=0;
}
//
void main(){
  int k;
  DDRB.4=1DDRA=0XFFDDRC=0xFFDDRG=0x0F;
  TCCR0=0;
  TCCR0|=(1<<WGM01)|(1<<COM00);
  TCCR2|=(1<<WGM21)|(1<<CS20|(1<<CS21); OCR2=249TIMSK=(1<<OCIE2); //1ms
  SREG=0X08;
  while(1){
    if(timer2_flag){
      timer2_flag=0;
      for(k=0k<=98k++){
        TCCR0=0TCCR0|=(1<<WGM01); TCCR0|=(1<<COM00); TCCR0|=clock_set[musicCode1[k].melody];
        OCR0=ocr0_set[musicCode1[k].melody]; // 여기까지 음정 관련 코드
        PORTA=led[musicCode1[k].melody];     // led 박자 길이 표시
        PORTC=8;
        PORTG=oct[musicCode1[k].melody];      // 옥타브 표시
        PORTC=1;
        PORTG=scale[musicCode1[k].melody];    // 음계 표시
        while(timer[musicCode1[k].speed]>ms); // 박자 조정
      }
    }
  }
}

 

  TCCR0|=(1<<WGM01)|(1<<COM00);                   TIMSK|=(1<<OCIE0);
인터럽트 이네이블 시키고 인터럽트 함수를 만들지 않으면 오류 발생합니다.

 

 TCCR0|=(1<<WGM01)|(1<<COM00); 

 OCR0=ocr0_set[musicCode1[k].melody];  

이렇게만 해도 소리가 나든가요?

 

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

댓글 : 1

조회수 : 4,452

헤헿헿님의 댓글

헤헿헿 작성일

아 실수가 있었네요
조금 더 고쳐보겠습니다.

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[25] master  17-10-29
질문 아두이노 센서값 출력 질문입니다! 댓글[1] 아궁2 새글 22-06-24
질문 ATmega128, ATmega28 RS232통신 첨부파일Moon4201 새글 22-06-24
답변 답변 : ATmega128, ATmega28 RS232… master 새글 08:07
질문 서보모터, 온습도센서 코드 질문 댓글[2] 첨부파일kshdlfaldfh  22-06-22
답변 답변 : 서보모터, 온습도센서 코드 질문 댓글[15] master  22-06-22
질문 steppermulti5 질문 응애  22-06-21
답변 답변 : steppermulti5 질문 댓글[1] master  22-06-22
질문 atmega128 avr usart 질문 snoflak  22-06-21
답변 답변 : atmega128 avr usart 질문 댓글[5] master  22-06-21
질문 사용자 정의 함수 변환 하는 방법 댓글[2] 첨부파일da0800  22-06-21
질문 atmega128 댓글[1] 양의노래  22-06-20
질문 아두이노 동시동작 재질문 댓글[9] 첨부파일죠르디  22-06-20
질문 초음파센서로 dc모터 제어하기 댓글[1] 첨부파일난쟁2  22-06-20
질문 아두이노 동시동작 댓글[7] 죠르디  22-06-19
질문 ATMEGA128 UART,FND 연동 질문 JMOD  22-06-19
답변 답변 : ATMEGA128 UART,FND 연동 질문 댓글[1] master  22-06-20
질문 atmeg128 질문이요 댓글[1] 첨부파일공대생er  22-06-18
질문 atmega128 초음파 센서로 신호등 시간초 늘리기 서동씨  22-06-18
답변 답변 : atmega128 초음파 센서로 신호등 시간초… 댓글[1] master  22-06-18
질문 atmega128 댓글[2] 망경이  22-06-18
질문 앱인벤터 이용해서 수동 자동 할라고하는데 ..잘안됩니다… 댓글[1] 따랑해영  22-06-18
답변 질문 : 앱인벤터 이용해서 수동 자동 할라고하는데 ..… 댓글[1] 첨부파일따랑해영  22-06-19
답변 질문 : 앱인벤터 이용해서 수동 자동 할라고하는데 .… 첨부파일따랑해영  22-06-19
질문 서보모터와 초음파센서 댓글[1] 브링미히어  22-06-17
질문 LCD 도와주세요 ㅜㅠㅠㅠ 댓글[2] 첨부파일dentist22  22-06-17
질문 안녕하세요 atmega128 질문드리고 싶습니다. (자… 댓글[3] dlcldl  22-06-17
질문 아두이노 delay를 millis로 바꾸고 싶습니다. 슨슨슨모  22-06-16
답변 답변 : 아두이노 delay를 millis로 바꾸고 싶… master  22-06-17
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전