메뉴 바로가기

서브메뉴 바로가기

본문 바로가기

logo

묻고 답하기
조회 수 11,404 추천 수 0 댓글 3
?

단축키

Prev이전 문서

Next다음 문서

위로 아래로 댓글로 가기 인쇄 쓰기 목록
?

단축키

Prev이전 문서

Next다음 문서

위로 아래로 댓글로 가기 인쇄 쓰기 목록
?
  • WhiteAT 2013.04.25 15:55

    // 스위치 입력 상태는 받는 변수를 하나 만들어서 처리하면 좀더 간단합니다.

    // g_Status 이 1이면 1번 상태

    // 2이면 2번 상태, 3이면 3번 상태, 4이면 4번 상태,

     

    // 그리고 LED는 g_Status 변수에 따라 처리하면 인터럽트

    // 없이도 처리 가능합니다.

     

     

     

    #include <avr/io.h>

    #include <util/delay.h>

    void key_in(void);

    unsigned char LED_Data[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};

    unsigned char input= 0;

    int i,j;

     

     

     

    //1 PORTD.4에연결된버튼스위치가ON되면, PORTB.0

    //

    //PORTB.7의순서로LED가하나씩점멸

    // 2 PORTD.5에연결된버튼스위치가ON되면, PORTB.7

    // PORTB.0의순서로LED가하나씩점멸

    // 3 PORTD.6에연결된버튼스위치가ON되면, PORTB에연결된모

    // LED가점멸

    // 4 PORTD.7에연결된버튼스위치가ON되면, 8LED중상위4,

    // 하위4개의LED가교대로점멸

    unsigned char g_Status = 0; //0:

     

     

    int iStep; // 0 ~7  까지왕복

     

    void key_in(void)

    {

            input = PIND;

     

            // PORTD.4 가눌리면

            if((input &  0x10)!= 0x10)

            {

                   g_Status = 1;

            }

            else if((input & 0x20)!=  0x20)       // PORTD.5 가눌리면

            {

                   g_Status = 2;

            }

            else if((input & 0x40)!= 0x40)        // PORTD.6 가눌리면

            {

                   g_Status = 3;

            }

            else if((input & (0x80)) != 0x80)     // PORTD.7 가눌리면

            {

                   g_Status = 4;

            }

            else

            {

                   g_Status = 0;

                   iStep = 0;

            }

    }

    int main(void)

    {

            DDRD = 0x00;

            DDRE = 0xff;

     

            while(1)

            {

                   key_in();

     

                   if(g_Status ==1)

                   {

                           PORTE = LED_Data[iStep];

                           iStep++;

                           if(iStep>7) iStep = 0;

                   }

     

                   else if(g_Status ==2)

                   {

                           PORTE = LED_Data[iStep];

                           iStep--;

                           if(iStep<0) iStep = 7;

                    }

                   else if(g_Status ==3)

                   {

                           if((iStep++ %2) ==0)

                                  PORTE = 0xFF;

                           else

                                  PORTE = 0x00;

     

     

                   }

                   else if(g_Status ==4)

                   {

                           if((iStep++ %2) ==0)

                                  PORTE = 0x0F;

                           else

                                  PORTE = 0xf0;

                   }

     

     

                   _delay_ms(20*25);

     

            }

            return 0;

    }

  • 이경인 2016.11.30 10:17

    혹시 이 프로그램 짤때 헤더파일은 없는건가요? 헤더파일 있으시면 참고좀가능할까요??..

  • WhiteAT 2016.11.30 11:08

    이경인 님에게 달린 댓글

    별도의 헤더 파일은 없습니다.

    AVRStudio 로 기본적으로 제공되는 파일만으로 가능합니다.~


  1. 개발의뢰

    Date2025.06.17 Category :전기,전자,펌웨어
    Read More
  2. 외주 관련 문의 메일로 보냈는데 확인 부탁드립니다.

    Date2022.05.19 Category :전기,전자,펌웨어 Reply1
    Read More
  3. ATmega 질문

    Date2021.04.18 Category :전기,전자,펌웨어 Reply1
    Read More
  4. 드라이버

    Date2020.12.03 Category :전기,전자,펌웨어 Reply1
    Read More
  5. 피에조 센서

    Date2016.12.06 Category :전기,전자,펌웨어 Reply2
    Read More
  6. 5mm LED 연결

    Date2016.04.20 Category :전기,전자,펌웨어 Reply1
    Read More
  7. 12V led 켜기

    Date2016.03.14 Category :전기,전자,펌웨어 Reply1
    Read More
  8. avr atmega128 질문입니다.

    Date2013.11.07 Category :전기,전자,펌웨어 Reply1
    Read More
  9. avr atmega128 질문입니다 ㅠㅠ

    Date2013.10.25 Category :전기,전자,펌웨어 Reply1
    Read More
  10. 부품 관련

    Date2013.09.24 Category :전기,전자,펌웨어 Reply1
    Read More
  11. AVR ATmega 128로 인터럽트를 이용한 LED를 점멸하는 방법 좀 알려주세요.

    Date2013.04.25 Category :전기,전자,펌웨어 Reply3
    Read More
  12. zigbex 시리얼 통신 관련해서 한번만더 물어보겠습니다.

    Date2012.11.22 Category :전기,전자,펌웨어 Reply3
    Read More
  13. zigbex를 c#시리얼 통신으로 구현하는중인데 도와주세요.

    Date2012.11.20 Category :전기,전자,펌웨어 Reply1
    Read More
  14. FND 12시제 다시 질문드릴게요

    Date2012.04.07 Category :전기,전자,펌웨어 Reply2
    Read More
  15. FND 12시제로 표현하는 건데요 소스 질문좀 드릴게요

    Date2012.04.07 Category :전기,전자,펌웨어 Reply1
    Read More
목록
Board Pagination Prev 1 2 Next
/ 2