질문게시판 > 답변 : 8051 관련해서 질문드립니다.

TODAY359 TOTAL207,794
사이트 이용안내
Login▼/회원가입
포럼 동영상강좌 회원가입


BASIC4MCU 후원업체 최신 정보

BASIC4MCU | 질문게시판 | 답변 : 8051 관련해서 질문드립니다.

페이지 정보

작성자 master 작성일2018-02-08 14:25 조회438회 댓글1건

본문

	

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// DateTime : 2018-02-08 오후 2:27:22
// by Ok-Hyun Park
// P3.3이면 외부인터럽트죠?
//
char flag=0// 전역변수
//
외부인터럽트1 함수(){ // 하강엣지 인터럽트
  flag^=1// 비트0 반전
}
//
void TMR1_int(void)interrupt 3{
  TH1=0x63TL1=0xC0;
  if(flag){
    if(onecnt){
      if(--onecnt==0){ onecnt=25;
        if(++number>9999)number=0;
        convert();
      }
    }
  }
}
// 외부 인터럽트 설정 및 함수명은 알아서 수정하세요

 

//

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// DateTime : 2018-02-08 오후 2:29:45
// by Ok-Hyun Park
//P3.3이면 외부인터럽트죠?
//
char flag=0// 전역변수
//
외부인터럽트1 함수(){ // 하강엣지 인터럽트
  flag^=1// 비트0 반전
}
//
void TMR1_int(void)interrupt 3{
  TH1=0x63TL1=0xC0;
  if(flag){
    if(--onecnt==0){ onecnt=25;
      if(++number>9999)number=0;
      convert();
    }
  }
}
// onecnt 이 변수는 초기값으로 0을 주면 안됩니다. 문맥상 25를 줘야겠죠. 

 

 

//

  flag^=1// 비트0 반전 

 

flag 변수를 1과 xor 연산을 하면 

(변수 초기값이 0이므로) 결과는 0, 1 두가지만 나오게 됩니다.


//


  if(flag){

flag가 0이면 거짓이라서 if()문이 실행되지 않고

flag가 0이 아니면 참이라서 if()문이 실행됩니다.



  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글 1

조회수 438

27315co님의 댓글

27315co 작성일

친절하고 자세한 설명 정말 감사드립니다.

질문게시판HOME > 질문게시판 목록

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.

ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
게시물 검색

Privacy Policy
MCU BASIC ⓒ 2017