회원가입 ID/PW 찾기
AA
안녕하세요..
예전에는 된 것 같은데 interrupt에서 변수 값을 바꿔도 main에서는 안변하네요.
간단한 것 같은 데 잘 안되요...

interrupt에서 m_ReadReq을 바꾸고 main에서 PORTD.1을 이용하여 보는 데 동작을 안하네요...
main에서 출력하지 않고 interrupt에서 출력하면 잘 됩니다.

뭔가 실수한 것 같은데 잘 모르겠습니다.
잘 부탁드립니다.
참 compile은 win-AVR에서 했습니다.
댓글 5
  • No Profile
    글쓴이 도리형 10.08.16 15:04 댓글 좋아요 0 싫어요 0
    자답 : 전역변수 선언이 문제였네요...
    winAVR에서는 interrupt에서 전역변수를 쓸려면 단순히
    U8 m_ReadReq; 라고 하면 안되고
    volatile U8 m_ReadReq; 이라고 선언해야 하네요.
  • No Profile
    volatile 이란 keyword는 compiler의 최적화를 억제하는 키워드일 뿐입니다. 컴파일러의 최적화에 의해서 전역변수로 상용할 수 없었을 뿐인 거죠!

    --> 확실하지 않지만 Ram영역에 변수를 기록할 때 사용하는 변수로도 알고 있는데 제가 잘 못 알고 있는 것인지 해서 ㅎㅎ
    dohyunpak@yahoo.co.kr로 연락 부탁드립니다.
  • No Profile
    글쓴이 도리형 10.08.30 14:22 댓글 첨부 1 좋아요 0 싫어요 0
    정확히는 모르겠는데 AVR-GCC기반에서는 꼭 써야 한다고 하네요.. 다른 컴파일러에서는 써도되고 안써도 되는.....
    (copy해서 약간 수정한 글입니다....
     AVR-GCC컴파일러는 여러개의 태스크들이 동시 다발적으로 실행되는 리눅스 OS를 위해 개발된 컴파일러이고 운영체제에 의해 태스크들이 스케줄링되므로 메모리 할당 받은 영역이 그 때 그때마다 다를 수 있음. 그때마다 인터럽트 서비스 루틴내에 사용되 전역변수 값이 바뀌게 되거나 다른 태스크에 의해 간섭을 받게 되면 문제가 생기므로 아예 간섭받지 않는 별도의 영역에 할당해 버림->이것이 volatile로 선언된 전역변수임)
    대충 알것 같기도..... 밑에 파일 첨부합니다.  위 내용은 28page 하단 부터 있습니다.
  • No Profile
    헉 QA에서도 납이 없어서 다운이 안되네요.. 잉잉..
    으싸 으싸 열씸히 납을 쌓아야 겠습니다.
  • No Profile
    ^^ 인터럽트는 main 문과 다른 함수입니다.^^

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

search
번호 분류 제목 글쓴이 조회 수 날짜
3104 자유주제 HOT시스템 업그레이드..13 아크마 4651 2010.08.22
3103 중고장터 HOTnewtc꺼 AVR MEGA 128pro 개발키트(풀셋) 구합니다. 어쩌다 3239 2010.08.21
3102 전기전자 아무거나 HOTRC저역통과 필터와 파이형 필터의 차이점1 내이름32 3848 2010.08.21
3101 드론/로봇/라인트레이서 HOT라인트레이서 여기 올라와 있는 소스 컴파일을 했는데 오류가 떠요..1 vorcot 1393 2010.08.20
3100 전기전자 아무거나 HOTLED를 100개를 배터리로 구동하려면...2 jjogi 1160 2010.08.19
3099 자유주제 HOT확인했습니다2 절대초보 9137 2010.08.18
3098 자유주제 HOT후...납100...힘드네요ㅡㅠ21 KIAPEK 11526 2010.08.17
3097 전기전자 아무거나 HOT스피커 단선 경보회로좀 부탁드립니다2 너구리한마리 1337 2010.08.17
3096 전기전자 아무거나 HOT전자회로수리2 핸섬 1451 2010.08.16
3095 드론/로봇/라인트레이서 HOT라트소스를 짜는데요 실제 구동은 좀 이상하네요 Mirel 1491 2010.08.16
3094 자유주제 HOTzigbee를 이용한 자율 주행 로봇2 졸뿌 4898 2010.08.16
3093 자유주제 HOT잠시 쉬어갑시다27 졸뿌 1702 2010.08.16
3092 자유주제 HOT오실로 스코프에 프로브를 접촉하면 동작을 하고4 만년필 3990 2010.08.16
3091 자유주제 HOT정보를 검색하고 들어왔는데... ㅎㅎ6 만년필 3652 2010.08.16
3090 자유주제 HOT자동 등록 방지 기능7 빛나는 영혼 5243 2010.08.16
마이크로프로세서 HOTinterrupt에서 변수값을 바꿔도 main에서는 안 변해요...5 도리형 1221 2010.08.16
3088 마이크로프로세서 HOTatmega128에 타이머용 외부오실레이터(32.768KHz) 부착문의입니다.1 준성87 1448 2010.08.16
3087 자유주제 HOTUntitled 지구는내끄다 3175 2010.08.15
3086 전기전자 아무거나 HOTIBM 하드웨어 이론 핸섬 869 2010.08.15
3085 개발용역 HOTPCB 아트웍 / PCB 제작 / PCB 조립 전문 업체1 용가리3 12193 2010.08.14
  • 인간은 생각하는 것이 적으면 함부로 지껄인다.
    - 몽테스키외
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.