BASIC4MCU | 질문게시판 | Avr atmega128 led 제어 질문드리겠습니다
페이지 정보
작성자 임연수구이 작성일2022-04-04 09:14 조회7,381회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=19577
본문
#define F_CPU 1600000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void){
int t;
DDRA=0xFF;
while(1){
if( !(PIND & 0x01) ){
PORTA = 0XFE;
_delay_ms(50);
t = 0;
while( t<2000 ){
_delay_ms(1); t++;
if( (PIND&0x01) )break;
}
if(t >= 2000)
{ PORTA = 0x00; }
else
{ PORTA = 0xF0; }
while( !(PIND&0x01) );
_delay_ms(50);
}
else
{
PORTA = 0xFF;
}
}
}
위 코딩을 참고하여(버튼을 누르고 2초후에 8개다 점등되는 코딩)
1.버튼은 한번 클릭시 다음 클릭까지 대기시간은 2초이내로 한다.2초가 넘어가면 버튼 상태는 초기화 된다.(2초 초과시 LED OFF)
2.버튼을 1번 누르면 순차적으로 LED가 들어온다(0~7)
3.버튼을 2번 누르면 LED가 들어온다(7~0)
4.버튼을 3번 누르면 7과 0,그리고 6과 1, 그리고 5와 2, 그리고 4와 3이 점등된다
5.버튼을 4번 누르면 0에서 7로 그리고 7에서 0으로 왔다갔다 한다.(좌우 시프트)
6.버튼을 5번 누르면 0에서 4까지 on, 그리고 5부터 7까지 on을 반복한다(1초간격)
위 동작을 수행하는 코딩을 짜려하는데 도저히 방법이 생각이나지 않아 질문드립니다. 답변 부탁드리겠습니다
댓글 0
조회수 7,381등록된 댓글이 없습니다.