디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

Atmega128 도와주새요

헬프미(210.102) 2010.12.09 14:14:31
조회 1500 추천 0 댓글 2

#include <avr/io.h>
#include <avr/interrupt.h>
#include "OK128.h"
volatile unsigned int second, minute, hour;
#define VLOA 9008   // define note, octave 2
#define VLOAX 8580
#define VLOB 8098
#define LOC 7644   // define note, octave 3
#define LOCX 7214
#define LOD 6810
#define LODX 6427
#define LOE 6066
#define LOF 5726
#define LOFX 5404
#define LOG 5101
#define LOGX 4815
#define LOA 4544
#define LOAX 4289
#define LOB 4049
#define MIC 3821   // define note, octave 4
#define MICX 3607
#define MID 3404
#define MIDX 3213
#define MIE 3033
#define MIF 2862
#define MIFX 2702
#define MIG 2550
#define MIGX 2407
#define MIA 2272
#define MIAX 2144
#define MIB 2024
#define HIC 1910   // define note, octave 5
#define HICX 1803
#define HID 1702
#define HIDX 1606
#define HIE 1516
#define HIF 1431
#define HIFX 1350
#define HIG 1275
#define HIGX 1203
#define HIA 1135
#define HIAX 1072
#define HIB 1011
#define VHIC 955   // define note, octave 6
#define VHICX 901
#define VHID 850
#define VHIDX 803
#define VHIE 757
#define NOTE32 1*3   // define note length
#define NOTE16 2*3
#define NOTE16D 3*3
#define NOTE16T 2*2
#define NOTE8 4*3
#define NOTE8D 6*3
#define NOTE8T 4*2
#define NOTE4 8*3
#define NOTE4D 12*3
#define NOTE4T 8*2
#define NOTE2 16*3
#define NOTE2D 24*3
#define NOTE1 32*3
#define REST32 1*3   // define rest length
#define REST16 2*3
#define REST16D 3*3
#define REST8 4*3
#define REST8D 6*3
#define REST4 8*3
#define REST4D 12*3
#define REST2 16*3
#define REST2D 24*3
#define REST1 32*3
unsigned char tempo;
void Set_tempo(unsigned char number)            /* set tempo */
{
  tempo = number;                               // set tempo
  TCCR3A = 0x40;                                // CTC mode(12), use OC3A
  TCCR3B = 0x18;                                // speaker off
  TCCR3C = 0x00;
}
void Play_note(unsigned int sound, unsigned int note) /* play note */
{
  ICR3 = sound;     // set ICR3
  TCNT3 = 0x0000;                               // clear Timer/Counter3
  TCCR3B = 0x1A;                                // start CTC mode(prescaler = 8)

  Delay_ms(note*tempo*7);                       // note play time

  TCCR3B = 0x18;                                // speaker off
}
void Play_rest(unsigned int rest)               /* play rest */
{
  Delay_ms(rest*tempo*7);                       // rest play time
}
void Clear_time(void)                           /* clear time */
{ hour=0; minute=0; second=0;                         // clear time
  LCD_string(0x80," Remaining 00.0  ");          // clear display
}
void Set_timer1(void)                           /* initialize Timer1 and OC1A */
{
  TCCR1A = 0x00;                                // CTC mode(4), don\'t output OC1A
  TCCR1B = 0x0C;                                // 16MHz/256/(1+624) = 100Hz
  TCCR1C = 0x00;
  OCR1A = 6240;
  TCNT1 = 0x0000;                               // clear Timer 실제 카운트되는 수치가 저장되는 레지스터
  ETIMSK = 0x00;
  TIFR = 0x3C;                                  // clear all interrupt flags
  ETIFR = 0x01;
}
void Set_SW2_int(void)                           /* initialize Timer1 and OC1A */
{
  EICRB = 0x00;                                 // INT7 = level trigger
  EIMSK = 0x80;     // enable INT7
  EIFR = 0xFF;                                  // clear interrupt flag
}
void LCD_2digit(unsigned char number)           /* display 2-digit decimal number */
{
                  // 10^1
  LCD_data(number%10 + \'0\');                    // 10^0
}
void Display_time(void)                         /* display time */
{

  LCD_command(0x8B);                            // display hour
  LCD_2digit(hour);
  LCD_command(0x8C);                            // display minute
  LCD_2digit(minute);
  LCD_command(0x8E);                            // display 1/100 second
  LCD_2digit(second%100);

}
ISR(INT7_vect)

   TIMSK = 0x10;         
   }
void Music(void)
{
   LCD_string(0xC0,"PongdangPongdang"); // display music title
      Set_tempo(2);    // set tempo

      Play_note(MIG,NOTE8);               // line 1
      Play_note(MIG,NOTE8);
      Play_note(MIA,NOTE8);
      Play_note(MIB,NOTE8);
      Play_note(MIG,NOTE8);
      Play_note(MIB,NOTE8);
      Play_note(MIA,NOTE8);
      Play_note(MIFX,NOTE8);
      Play_note(MIG,NOTE8);
      Play_note(MIG,NOTE8);
      Play_note(MIA,NOTE8);
      Play_note(MIB,NOTE8);
      Play_note(MIG,NOTE4);
      Play_note(MIFX,NOTE4);
      Play_note(MIG,NOTE8);// line 2
      Play_note(MIG,NOTE8);
      Play_note(MIA,NOTE8);
      Play_note(MIB,NOTE8);
      Play_note(HIC,NOTE8);        
      Play_note(MIB,NOTE8);
      Play_note(MIA,NOTE8);
      Play_note(MIG,NOTE8);
      Play_note(MIFX,NOTE8);
      Play_note(MID,NOTE8);
      Play_note(MIE,NOTE8);
      Play_note(MIFX,NOTE8);
      Play_note(MIG,NOTE4);
      Play_note(MIG,NOTE4);
      Play_note(MIE,NOTE8D); // line 3
      Play_note(MIFX,NOTE16);
      Play_note(MIE,NOTE8);
      Play_note(MID,NOTE8);            
      Play_note(MIE,NOTE8);
      Play_note(MIFX,NOTE8);
      Play_note(MIG,NOTE4);
      Play_note(MID,NOTE8);
      Play_note(MIE,NOTE16);
      Play_note(MID,NOTE8);
      Play_note(MIC,NOTE8);
      Play_note(LOB,NOTE4);
      Play_note(MID,NOTE4);
      Play_note(MIE,NOTE8D); // line 4
      Play_note(MIFX,NOTE16);
      Play_note(MIE,NOTE8);
      Play_note(MID,NOTE8);            
       Play_note(MIE,NOTE8);
 Play_note(MIFX,NOTE8);
Play_note(MIG,NOTE8);
       Play_note(MIE,NOTE8);
       Play_note(MID,NOTE8);
       Play_note(MIG,NOTE8);
       Play_note(MIFX,NOTE8);
 Play_note(MIA,NOTE8);
       Play_note(MIG,NOTE4);
       Play_note(MIG,NOTE4);
       }
ISR(TIMER1_COMPA_vect)   /* OC1A interrupt function */

 second--;                                     // increment 1/100 second
   if(second == -1)                            // second = 60 ?
    {    minute--;
  second = 9;                            // if yes, second = 0 and minute++
    
     if(minute ==-1 )                         
        {    hour--;   
  minute = 9;              
           if(hour ==-1)                      
            { 
    minute = 0;
    second = 0;
    int i =0;
   for (i = 0; i < 20; i++)
   { Beep();
   }
    TIMSK = 0x00;
         Clear_time();   // enable OC1A interrupt     
   }
        
           }            
 
  }
   Display_time(); 
}

int main(void)
{
 MCU_initialize();                             // initialize MCU and kit
   Delay_ms(1000);                                 // wait for system stabilization
   LCD_initialize();                             // initialize text LCD module
   //Beep();

   LCD_string(0x80," Remaining 00.0 s  ");          // display title
 //Clear_time();                                 // clear time and display
   //run_flag = 0;
 Set_timer1();                                 // initialize Timer1 and OC1A
 Set_SW2_int();

    sei();

 while(1)
 { switch(Key_input())                       // key input
        {
   case 0x70 : PORTB = 0x80;  // KEY4
     hour +=1 ;
    Display_time();   
             break;

   
   case 0xB0 : PORTB = 0x40; //KEY 3
    minute +=1;
    if(minute ==10)
    {
     minute =0;
     hour ++;
    }
         
    Display_time();   
    break;


   case 0xD0 : PORTB = 0x20; // KEY 2
    second +=1;
    if(second == 10)
    {
     second=0;
     minute ++;
    }
    Display_time();   
      break;

  }
 
 }
}
스탑워치 프로그램인데요 스탑워치 되면서 노래같이 나오다가 인터럽트 걸리면 노래랑 스탑워치가 동시에
멈추게 하려면 어떻게 해야되나요 ..ㅜㅜㅜㅜㅜㅜㅜ

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 가족과 완벽하게 손절해야 할 것 같은 스타는? 운영자 24/06/24 - -
225955 effective시리즈는 진리입니다 [1] 아잉따잉갤로그로 이동합니다. 10.12.20 105 0
225954 갑자기 꿈 한 부분의 내용이 기억났는데 aszx(211.206) 10.12.20 46 0
225953 이제 대학생되는데 질문좀 [13] sd(203.130) 10.12.20 223 0
225952 이펙티브 자바 괜히 샀다. [5] 머그컵갤로그로 이동합니다. 10.12.20 204 0
225951 친구놈이 자꾸 포격드립치는데 [4] aszx(211.206) 10.12.20 126 0
225950 피파 하는횽들 없음메? [1] 캐꼬꼬닭(112.216) 10.12.20 56 0
225949 사격 게시됨 ㄷㄷㄷ 2:30분 정도 부터래 [2] 시불라미갤로그로 이동합니다. 10.12.20 101 0
225948 C++로 사용한 MFC 질문좀 할께요 ㅠㅠㅠ [4] 늅뉴빙(121.174) 10.12.20 165 0
225947 자바로 타로카드 보는 프로그램.. [2] 에휴휴휴휴(112.186) 10.12.20 94 0
225946 프로젝트 먹튀;; 진행상황 [15] 일광면(119.198) 10.12.20 427 0
225945 미국가서 성공하는법 [3] 꿀레갤로그로 이동합니다. 10.12.20 170 0
225944 정신이 혼미해진다 [3] 개쉛기갤로그로 이동합니다. 10.12.20 103 0
225943 일어난지 2시간째 [5] elwlwlwk갤로그로 이동합니다. 10.12.20 92 0
225942 미쿡가서 성공하려면 어떻게 해야함여? [6] SebasT갤로그로 이동합니다. 10.12.20 115 0
225941 군복들은 다려 놓으셨슴까? [4] SebasT갤로그로 이동합니다. 10.12.20 140 0
225940 부칸 핵사찰단 다시 복귀하라고 어쩌고 뉴스 나왔넹 [3] 시불라미갤로그로 이동합니다. 10.12.20 82 0
225939 시펄 결정한 치타후치타횽 글에 리플 보니까 궁금해서 그러는데 [15] aszx(211.206) 10.12.20 136 0
225938 자바에서 vector 사용중인데요 [4] ㅇㅇ(180.224) 10.12.20 132 0
225936 안드로이드 오류좀 봐주실분? [7] 안드로이드(58.145) 10.12.20 173 0
225933 아흨 VirtualBox에 Debian 깔고 통신좀 하려 했더니 [4] foriequal0갤로그로 이동합니다. 10.12.20 173 0
225931 형님들.. 전졸예정 컴정과학생인데 좀 상담좀요 [2] 뉴비(203.229) 10.12.20 139 0
225929 이 불쌍한 중생에게 가르침을 주십시오 [2] (118.131) 10.12.20 66 0
225928 미국에선 컴싸전공 한다고 하면 진짜 미래의 엘리트 취급받는데 [2] ㅇㅇ(74.60) 10.12.20 321 0
225926 opengl 질문 좀~ [3] 헬푸미(112.146) 10.12.20 141 0
225925 님들아 어디로 도망가면 무사할까염? [2] 스몰마인드(121.182) 10.12.20 91 0
225923 Assist 좀 도와줘 [3] ㅇㅅ(110.15) 10.12.20 58 0
225922 랜덤함수를 사용못하면?? [12] asfdafdsafsd(121.65) 10.12.20 165 0
225921 마소의 노예가 된 이유? [2] 훗쇼갤로그로 이동합니다. 10.12.20 159 0
225920 시펄 그래 결정했어! [19] 치타후치타갤로그로 이동합니다. 10.12.20 274 0
225919 덕후 까지 마라... [4] SebasT갤로그로 이동합니다. 10.12.20 147 0
225918 [이지스원] 군특기병(병역특례) 정보보안교육과정 [5] 이지스원교육부갤로그로 이동합니다. 10.12.20 163 0
225917 대학가면 유초중고딩때부터 컴터하더놈 얼마나있어? [27] 치타후치타갤로그로 이동합니다. 10.12.20 235 0
225916 2주일째 똑같은짓 반복중 [2] SebasT갤로그로 이동합니다. 10.12.20 67 0
225914 왠지 프로그래밍하면 졸라 멋있어보임 [7] 치타후치타갤로그로 이동합니다. 10.12.20 160 0
225913 해일리는 또 봅니다. [6] iljeomobolt갤로그로 이동합니다. 10.12.20 110 0
225912 해일리는 봅니다. [6] iljeomobolt갤로그로 이동합니다. 10.12.20 162 0
225910 string 입력과 예외처리 질문좀 [3] 전설의기타리스트갤로그로 이동합니다. 10.12.20 87 0
225909 북한 개객기들.. [3] 꿀레갤로그로 이동합니다. 10.12.20 103 0
225908 안드로이드 좀 이상해.. [7] sdf(119.193) 10.12.20 114 0
225907 곧 연평도사격훈련할듯... [2] 꿀레갤로그로 이동합니다. 10.12.20 77 0
225906 [이지스원] 해킹보안실무교육, 이지스원교육센터 찾아오시는길 [8] 이지스원교육부갤로그로 이동합니다. 10.12.20 155 0
225903 지들이 뭘 원하는지도 모르면서 [5] 해일리갤로그로 이동합니다. 10.12.20 109 0
225902 프로그래밍 오늘부터 대학에서 배우는데 [7] 고데레갤로그로 이동합니다. 10.12.20 148 0
225900 근데 형들아 컴공 돈 진짜 잘벌어. [15] Minryu갤로그로 이동합니다. 10.12.20 503 0
225899 ifstream은 파일 입력, ofstream은 파일 출력에 사용되어야함 [2] 화택씨갤로그로 이동합니다. 10.12.20 88 0
225898 아침엔 배가아프긔 꿀레갤로그로 이동합니다. 10.12.20 37 0
225896 아침이야 prismatic갤로그로 이동합니다. 10.12.20 43 0
225895 너네 이런거나 좀 만들어봐라.... [4] VL갤로그로 이동합니다. 10.12.20 193 0
225894 세브횽 [5] prismatic갤로그로 이동합니다. 10.12.20 66 0
225893 시팔 대한민국은 썩었어 [4] 치타후치타갤로그로 이동합니다. 10.12.20 195 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2