BASIC4MCU | 질문게시판 | atmega16 누적왕복점등
페이지 정보
작성자 잘생김 작성일2019-11-18 21:24 조회4,876회 댓글1건본문
PORTA0~7 까지 sw1로 누적되며 왕복점등
PORTB0~7 까지 sw2로 누적되며 왕복점등
sw 두번 누르면 led 하나씩 뜨게 하고 싶습니다.
// 프로그램
// DateTime : 2019-11-05 오후 9:44:49
// by Ok-Hyun Park
//
#include <avr/io.h>
#include <util/delay.h>
//
int main(void){
char sw1_flag=0 ,sw2_flag=0; // 스위치 누름 체크용 프래그
char dir1_flag=1,dir2_flag=1; // 초기값 왼쪽 쉬프트
int i=0,dir=1;
DDRA=0xff; PORTA=0xff; PORTB=0xff;
PORTD=0x03; // 내부 풀업저항 사용
while(1){
PORTA=0xFF<<i;
//
if((PIND&0x01)==0){
if(sw1_flag==0){ sw1_flag=1; // 하강엣지 검출
i+=dir;
if(i==8)dir=-1;
if(i==0)dir= 1;
_delay_ms(50);
}
}
else{
if(sw1_flag){ sw1_flag=0; _delay_ms(50); } // 상승엣지 검출
}
}
}
댓글 1
조회수 4,876master님의 댓글
master 작성일
https://www.basic4mcu.com/bbs/board.php?bo_table=gesiyo6&wr_id=86
이 게시판에 몇가지 방법의 예제가 있으니 공부해서 만들어보세요