회원가입 ID/PW 찾기
AA
atmega128로 설계를 하고 있습니다..

다른것은 어느정도 했는데..

스위치로 입력이 들어왔을때 2동작을 하고 ... 다시 들어오면 1동작으로 되돌아오는 것을 처리할 방법을 모르겠습니다.

스위치 (LED)특성상
입력 0 0 0 0 0 1  0 0 0 0 0 1 0 0 0 0 1 0 0 0  (LED

동작 =======ㅁㅁㅁㅁㅁ =======ㅁㅁㅁㅁ

같은 동작을 연출하고 싶습니다...

어떻게 해야 될지 도와주세요 ㅠㅠ




댓글 3
  • No Profile

    레지스터만 이용해서 프로그램 구현하시는거 같네요

    변수 하나를 지정하셔서 한번 누르면 CNT=1

    두번 누르면 CNT=2

    저 조건들을 If문을 사용해서 처리 하시면 될꺼 같습니다...

  • No Profile
    와우님께서 잘 말씀해 주신거 같이 보이네요....첨언을 좀 해보자면..

    1) 우선 전역변수를 하나 선언하고 인터럽트 함수에서는 변수만을 변경합니다.
    2) 메인루프에서는 변경된 변수를 참조하여 출력을 처리 하시면 잘 될거 같다는 생각이 듭니다.

    소스를 간단히 예를 들어 드리면 다음과 같군요.

    unsigned char g_ucStatus = 0 ;

    인터럽트 함수()
    {
        if( g_ucStatus == 0 ) g_ucStatus = 1 ;
        else g_ucStatus = 0 ;
    }

    메인함수()
    {
         while(1)
         {
                if( g_ucStatus == 0 )
                {
                          // 동작 1 수행
                }
                else 
                {
                           // 동작 2 수행
                }
         }
    }

    이 정도로 표현될 수 있겠군요.
    수고하세요.
  • No Profile

    인터럽트를 edge trigger로 설정해 주는 센스...
    안그러면 계속 인터럽트 걸립니다.

하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
  • 최고에 도달하려면 최저에서 시작하라.
    - P.시루스
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.