회원가입 ID/PW 찾기
AA

기분이 울적해지네요. 나름 공부한다고 하고 문제를보았는데 웬걸 하나도모르겠는거아닙니까.

 

그래서 AVR고수분들께 자문을 구하러 이곳까지오게됐습니다. 그러니 조카보는심정으로 알려주시면

 

정말 행복해지고 입가에 웃음이 지어질거같습니다. 제가 헤맸던문제가 바로이겁니다.

 

{

 

스위치가 0~7번까지 8개가 있다. 이중 4,5,6,7번이 각각 INT0,INT1,INT2,INT3으로 연결된다

 

인터럽트는 상승에지에서 발생하여 INT0은 값이 증가하고 INT1은 값이감소한다. INT2는 값이 5씩 증가하고

 

INT3은 값이 5씩 감소한다. 이값은 FND로 0~99까지 표시, LED 16개로 0~65535까지 표시하는 프로그램을 작성하라

 

(단 포트는 어떤 포트를 사용해도 관계없다.) 

 

}

 

부탁드리겠습니다.

댓글 5
  • No Profile
    소스코드로 작성해달라는 것인가요??
  • No Profile

    글로벌 변수 하나 따로 만드셔서 0값 넣으세요. 책이나 데이터시트 보고 인터럽트 함수 네개 작성하시구요. 인터럽트 0에는 +1이나 ++로 증가. 인터럽트 1에는 --이나 -1등등 나머지도 문제 조건대로 하구요. 0보다 작을 경우가 필요하면 조건문 하나 따로 쓰세요.

    메인에는 사용 포트 입출력 세팅과 인터럽트 에지 세팅 하시구요. 책이나 데이터시트가 있는대로 하시면 뼈대가 나오네요. 나머지는 출력인데, 표시 LED나 FND 출력 방법은 생략 하겠습니다. 글로벌 변수 안에 현재 결과값이 있으니 본인이 연결핀에 맞춰 출력 포트에 값을 잘 넣어 주세요.
     
    p.s. 인터럽트 함수 내에 증감식 같은 간단한 구문은 넣으셔도 됩니다만, 0보다 작은 경우라거나 언더 플로 방지라거나 하는 조건식이 필요하다면 본문이나 다른 함수로 빼서 해주는게 낫습니다. 인터럽트 시 클럭을 많이 잡아먹는 행위를 하면 인터럽트 도중이라 다른 명령이 씹히는 일도 있어서 정교한 동작이 필요할 시 지양하는 편입니다.
    그저, 레포트 수준이라면 큰 버그가 없기 때문에 별 상관없으리라 봅니다만...
  • No Profile
    om 17.05.25 06:42 댓글 좋아요 0 싫어요 0
    하드웨어를 꾸며서 프로그램을 짜서 시험을 한다면,당장 스위치 채터링 문제를 해결해야 합니다.
    프로그램과 하드웨어적으로 해결하는 방법이 있는데,프로그램을 처음 접하셨다면,프로그램 방식은 나중에 시간 나실때 해 보시고 하드웨어방식으로 하시고 프로그램을 시험하시면 됩니다. 안 그러면 스위치 채터링땜시 프로그램 고생 엄청 합니다.하드웨어방식 채터링 방지는 구글링하시면 어마어마하게 많이 나와 있습니다.
  • No Profile
    소스코드가 필요하신 건가요?
  • No Profile

    감사합니다

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

search
  • 지식인은 지금까지 일어났던 일을 안다. 천재는 앞으로 일어날 일을 안다.
    - 치아다
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.