BASIC4MCU | 질문게시판 | atmega128 스위치 제어
페이지 정보
작성자 maximum 작성일2021-04-04 20:04 조회14,562회 댓글2건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=14993
작성일
본문
평소에는 led가 시프트 하다가 스위치 E0 를 누르면 평소보다 더 빠르게 시프트하고 스위치 E1을 누르면 역방향으로 시프트하는 프로그램을 지금 만들어 놨는데 여기서 스위치를 동시에 누르면 역방향으로 시프트하면서 빠르게 시프트하는 코드를 넣고 싶은데 어떻게 고쳐야 하는가요?#include<util/delay.h>#include<avr/signal.h>#include<avr/io.h>#include<avr/interrupt.h>#define F_CPU 16000000ULconst unsigned char led[8] = {0x01 , 0x02, 0x04 , 0x08 , 0x10 , 0x20, 0x40, 0x80};void main(void){int i, j, k, s;DDRC = 0xFF;DDRE = 0x0;if(PINE&0x03){for(s=7;s>=0;s--){PORTC = led[s];_delay_ms(1000);}}else{while(1){for(i=0;i<8;i++){PORTC = led[i];_delay_ms(5000);if(PINE&0x01){for(j=0;j<8;j++){PORTC = led[j];_delay_ms(1000);}}else if(PINE&0x02){for(k=7;k>=0;k--){PORTC = led[k];_delay_ms(5000);}}}}}}
댓글 2
조회수 14,562master님의 댓글
master 작성일
모든 경우의 수를 고려해서 알고리즘을 작성하고
알고리즘에 문제가 없다면 알고리즘 대로 c코드를 작성하기만 하면 됩니다.
maximum님의 댓글
maximum
아 넵 정말 감사합니다.