회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
588 마이크로프로세서 HOT보통 개발환경 뭐 쓰시나요..???1 공도리구기 2120 2010.08.30
587 마이크로프로세서 HOTAVR로 인터넷 접속 및 데이타 전송2 바다거북 1004 2010.08.29
586 마이크로프로세서 HOT인터럽트가 왜 발생을 안할까요?2 윤서파파 2957 2010.08.27
585 마이크로프로세서 HOT홈 오토매이션 만들어보신분..3 온니무 1131 2010.08.25
584 마이크로프로세서 HOT8051도 회사취직 하면 많이 쓰나요??10 온니무 1173 2010.08.25
583 마이크로프로세서 HOTavr에서 cmos카메라의 사용방법이 궁금합니다(회로첨부)1 응캬아 1968 2010.08.24
582 마이크로프로세서 HOTATmega128에 엔코더 다신 분 계신가요?6 봉만이 3080 2010.08.24
581 마이크로프로세서 HOT부저음을 내고 싶습니다..ㅎㅎ;;2 후아푸 2112 2010.08.23
580 마이크로프로세서 HOT선풍기 모터의 RPM을 어떻게 하면 알 수 있을까요?8 Glory 3734 2010.08.22
마이크로프로세서 HOTinterrupt에서 변수값을 바꿔도 main에서는 안 변해요...5 도리형 1223 2010.08.16
578 마이크로프로세서 HOTatmega128에 타이머용 외부오실레이터(32.768KHz) 부착문의입니다.1 준성87 1454 2010.08.16
577 마이크로프로세서 HOTATmega128에서 5상 스텝핑모터구현시 진동과 소음문제??1 디지랜드 1634 2010.08.10
576 마이크로프로세서 HOT서보 제어 전원관련 질문이요 제발 도와주세요ㅜ2 JMX 1331 2010.08.09
575 마이크로프로세서 HOT도와주세용 (__farflash ) 사용법 중에.서2 1002 1178 2010.08.06
574 마이크로프로세서 HOT서보 모터 질문입니다! 도와주세요1 박종호 1211 2010.08.02
573 마이크로프로세서 HOTRC 서보모터 구동 관련2 야슬이 1395 2010.08.01
572 마이크로프로세서 HOTAVR은 Dead Band 기능이 없는지요?2 시현아빠 1255 2010.07.30
571 마이크로프로세서 HOTusart통신,,두개 쓰기,,소스좀 봐주세요...ㅠ5 광주공돌이 2118 2010.07.27
570 마이크로프로세서 HOT128 서보 12개 PC 파워서플라이사용에 관한 질문이요2 JMX 1376 2010.07.26
569 마이크로프로세서 HOTpwm 입력2 돌탱 1581 2010.07.25
Prev 1 ... 16 17 18 19 20 21 22 23 24 25 ... 50 Next
  • 한 번 실패와 영원한 실패를 혼동하지 마라.
    - F.스콧 핏제랄드
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.