BASIC4MCU | 질문게시판 | 답변 : 어제 받은 소스에서 질문있습니다.
페이지 정보
작성자 master 작성일2018-12-19 20:41 조회5,785회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=7080
본문
void main(void){UINT SW,OLD_SW;DDRA=0xFF; // A 포트 모든 핀 출력 설정PORTA=0xFF; // 모든 LED 초기값 OFFDDRB=0xFF; // B 포트 모든 핀 출력 설정DDRF=0xF0; // PF4-PF7 출력 설정DDRE=0x02; // PE 포트 입력 설정(PE1 출력)<--??0x02로 설정된 이유가 궁금합니다.혹시 몰라 0xFF로 변경해보았을때 스위치가 작동하지 않았습니다.OLD_SW=(~PINE>>4)&3; // SW8 상태값 추출<--??(~PINE>>4)&3의 의미가 정확이 어떤 의미인지 잘 모르겠습니다.TCCR1B=0x09; OCR1A=9999;while(1){PORTF=~0x80; PORTB=FND[d1]; delay_us(2450);PORTF=~0x40; PORTB=FND[d2]; delay_us(2450);PORTF=~0x20; PORTB=FND[d3]; delay_us(2450);PORTF=~0x10; PORTB=FND[d4]; delay_us(2450);SW=(~PINE>>4)&3;if(SW!=OLD_SW){OLD_SW=SW;if(SW&1){Run^=1; // SW8?<--?Run^=1 의 의미를 잘 모르겠습니다.인터넷에도 정확한 설명이 잘 나오지 않아 부탁드립니다.}}
DDRE=0x02; // PE 포트 입력 설정(PE1 출력)<--??0x02로 설정된 이유가 궁금합니다.혹시 몰라 0xFF로 변경해보았을때 스위치가 작동하지 않았습니다.이 코드는 원래 질문소스에 들어있던 것 아닌가요?회로도도 없고 PE1의 핀 설명이 없어서 알 수가 없으므로 그냥 나둔겁니다.
저에게 물어보면 안되겠죠..
필요없으면 삭제하세요
UART0 사용하는 경우에 TXD0를 출력으로 설정한다고 저렇게 설정하는 경우가 있는데
UART 설정만 하면 자동으로 TXD핀 출력이 결정되므로 사용자가 출력으로 설정할 필요가 없습니다.
//
비트 연산을 공부해야 합니다.
OLD_SW=(~PINE>>4)&3; // SW8 상태값 추출<--??(~PINE>>4)&3의 의미가 정확이 어떤 의미인지 잘 모르겠습니다.~는 비트반전 연산자입니다.0은 1로 바꾸고, 1은 0으로 바꿉니다.Run^=1;^는 XOR 연산자입니다.Run XOR 1 하면 RUN이 0이면 1로 되고, 1이면 0으로 됩니다.특정 비트만 선택적으로 반전 시킬 수 있습니다.
>> 우 쉬프트 연산자입니다.
& AND 연산자입니다.
댓글 0
조회수 5,785등록된 댓글이 없습니다.