◎초보자가이드 > 아트메가 주석처리가 어렵습니다 ㅠㅠ

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

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

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

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

BASIC4MCU > ◎초보자가이드

LED DIY | 아트메가 주석처리가 어렵습니다 ㅠㅠ

페이지 정보

작성자 취업가즈왑 작성일18-06-03 17:18 조회2,810회 댓글3건

본문

#include <avr/io.h>

#define F_CPU 16000000UL

#include <util/delay.h>

#include <avr/interrupt.h>

#include <stdlib.h>

 

unsigned char A[] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7C, 0x07, 0x7F, 0x67}; //fnd에 나타낼 숫자들 

volatile int a = 0,b,c,d;

 

ISR(INT4_vect);

void Fnd_Random();

void Buzzer();

 

int main(void)

{

   DDRA = 0xff; //a포트 모두 출력으로 설정 

   DDRB = 0x10; //b포트를 00010000 으로 설정 ,1은 출력 0은 입력

   DDRC = 0xff; //c포트 모두 출력으로 설정 

   DDRG = 0x0f; // g포트를 00001111로 설정 

   DDRE = 0xef; //e포트를 1110 1111로 설정

   EICRB = 0x02; //인터럽트 제어 레지스터 0000 0010 설정, 하강엣지 인터럽트 설정

     EIMSK = 0x10;// 인터럽트 4 허용 비트 0001 0000

     sei(); //클로벌 인터럽트 인에이블, 인터럽트 사용 허가

     while (1)

     {

      Fnd_Random(); // fnd_random 함수를 무한 반복

     }

}

 

ISR(INT4_vect) //인터럽트 서비스 루틴 , int4_vect 는 외부인터럽트

{

  _delay_ms(1);

  a++;

  if(a==5)

  {

    a = 0;

  }

}

 

void Fnd_Random()

{

   if(a == 0)

    {

         b=rand()%8;

      }

    if(a == 1)

    {

      PORTG = 0x08;   PORTC = A[b];   _delay_ms(5);

      c=rand()%8;

      }

   if(a == 2)

   {

      PORTG = 0x08;   PORTC = A[b];   _delay_ms(5);

      PORTG = 0x04;   PORTC = A[c];   _delay_ms(5);

      d=rand()%8;

   }

   if(a == 3)

   {

      PORTG = 0x08;   PORTC = A[b];   _delay_ms(5);

      PORTG = 0x04;   PORTC = A[c];   _delay_ms(5);

      PORTG = 0x02;   PORTC = A[d];   _delay_ms(5);

      Buzzer();

   }

   if(a == 4)

   {

      PORTG = 0x00;

   }

}

 

void Buzzer()

{

   if(b==9)

   {

      if(c==9)

      {

         if(d==9)

         {

            TCCR0 = 0b01111110;

            OCR0 = 190;

         }

      }

      TCCR0 = 0;

      OCR0 = 0;

   }if(b==8)

   {

      if(c==8)

      {

         if(d==8)

         {

            TCCR0 = 0b01111110;

            OCR0 = 190;

         }

      }

      TCCR0 = 0;

      OCR0 = 0;

   }if(b==7)

   {

      if(c==7)

      {

         if(d==7)

         {

            TCCR0 = 0b01111110;

            OCR0 = 190;

         }

      }

      TCCR0 = 0;

      OCR0 = 0;

   }if(b==6)

   {

      if(c==6)

      {

         if(d==6)

         {

            TCCR0 = 0b01111110;

            OCR0 = 190;

         }

      }

      TCCR0 = 0;

      OCR0 = 0;

   }if(b==5)

   {

      if(c==5)

      {

         if(d==5)

         {

            TCCR0 = 0b01111110;

            OCR0 = 190;

         }

      }

      TCCR0 = 0;

      OCR0 = 0;

   }if(b==4)

   {

      if(c==4)

      {

         if(d==4)

         {

            TCCR0 = 0b01111110;

            OCR0 = 190;

         }

      }

      TCCR0 = 0;

      OCR0 = 0;

   }if(b==3)

   {

      if(c==3)

      {

         if(d==3)

         {

            TCCR0 = 0b01111110;

            OCR0 = 190;

         }

      }

      TCCR0 = 0;

      OCR0 = 0;

   }if(b==2)

   {

      if(c==2)

      {

         if(d==2)

         {

            TCCR0 = 0b01111110;

            OCR0 = 190;

         }

      }

      TCCR0 = 0;

      OCR0 = 0;

   }if(b==1)

   {

      if(c==1)

      {

         if(d==1)

         {

            TCCR0 = 0b01111110;

            OCR0 = 190;

         }

      }

      TCCR0 = 0;

      OCR0 = 0;

   }if(b==0)

   {

      if(c==0)

      {

         if(d==0)

         {

            TCCR0 = 0b01111110;

            OCR0 = 190;

         }

      }

      TCCR0 = 0;

      OCR0 = 0;

   }else

   {

      DDRG = 0x00;

      PORTG = 0x00;

      PORTA=0xff;

      _delay_ms(1000);

      a++;

   }

   PORTA=0x00;

}

//jackpot 머신이라고 만들었는데 어렵네요 도와주세요 고수님들,,

댓글 : 3

조회수 : 2,810

master님의 댓글

master 작성일

jackpot 게임 룰 부터 공부하셔야 하지 않을까요?
저도 jackpot 룰을 몰라서...

취업가즈왑님의 댓글

취업가즈왑 댓글의 댓글 작성일

7세그먼트를 3개만 사용하여 각자리에 0~9까지의 랜덤숫자를 돌린다음 스위치1을 눌렀을때 왼쪽부터 하나씩 멈추고 3개의 7세그먼트가 모두 멈추었을때 777이면 소리가 나게 하고싶었습니다. 만약 777이아닌 다른수가 뜨면 스위치를 눌렀을때 리셋이 되는..
프로그램은 부저 스위치 fnd만을 사용하여 만들고싶었습니다..ㅠㅠ

master님의 댓글

master 댓글의 댓글 작성일

질문 제목은 주석을 달아달라는 것처럼 보이는데요
본인이 작성 한 것이라면 주석처리가 쉽지 않나요?
//
뭐가 안되서 질문을 작성한 것이라면
뭐가되고 뭐가 안되는지 적어보세요

게시물 검색

◎초보자가이드 목록

게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전