BASIC4MCU | 질문게시판 | ATmega128 LED 스위치 질문입니다.
페이지 정보
작성자 lIlIllI 작성일2021-04-06 22:14 조회28,902회 댓글3건본문
#include <avr/io.h>
int main(void)
{
DDRC= 0x00;
DDRD = 0xFF;
while(1)
{
PORTC=PIND;
}
return0;
}
위 코드에서 1번 스위치 push하면 7번 스위치 점등, 2번 스위치 push하면 6번 스위치 점등 이런식으로 역으로 내려가고싶은데 어떻게 수정해야할까요..
비전공자라 질문드립니다 ㅠㅠ
댓글 3
조회수 28,902master님의 댓글
master 작성일
#include <avr/io.h>
//
int main(void){
unsigend char c;
DDRD=0xFF;
while(1){
if(PIND&0x01)c|=0x80; else c&=~0x80;
if(PIND&0x02)c|=0x40; else c&=~0x40;
if(PIND&0x04)c|=0x20; else c&=~0x20;
if(PIND&0x08)c|=0x10; else c&=~0x10;
if(PIND&0x10)c|=0x08; else c&=~0x08;
if(PIND&0x20)c|=0x04; else c&=~0x04;
if(PIND&0x40)c|=0x02; else c&=~0x02;
if(PIND&0x80)c|=0x01; else c&=~0x01;
PORTC=c;
}
return0;
}
lIlIllI님의 댓글
lIlIllI
감사합니다 혹시 설명도 가능할까요?ㅠㅠ
master님의 댓글
master
무한루프는 위부터 아래로 내려가면서 비트7 -> 비트0 순입니다.
비트마스크를 공부하세요