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

TODAY387 TOTAL2,173,779
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


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

페이지 정보

작성자 취업가즈왑 작성일2018-06-03 17:18 조회2,738회 댓글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,738

master님의 댓글

master작성일

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

취업가즈왑님의 댓글

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

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

master님의 댓글

master댓글의 댓글작성일

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

◎초보자가이드HOME > ◎초보자가이드 > 전체 목록

게시물 검색

2022년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2021년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2020년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2020
모바일버전으로보기