본문 바로가기
임베디드/Atmega128

LED8개 차례대로 켜기 시프트

by sj0020 2020. 12. 7.
/*
 * LED8on.c
 *
 * Created: 2020-12-07 오후 6:55:53
 * Author : User
 */ 

#include <avr/io.h>
#include <util/delay.h>


int main(void)
{
	DDRB = 0xFF;
    
    while (1) 
    {
		PORTB = 00000001; 
		_delay_ms(500);
		for (int i=0; i<8; i++){			
			PORTB = PORTB << 1 ;			
			_delay_ms(500);
		}
		
    }
}

위의 코드처럼 하나의 동작인데 for문 속에 다 안넣고 for 위에 켜주고 딜레이 주고 + for 안에서 나머지 반복 처럼 따로따로 해주면 

여러 동작이 있는 코드를 짰을 때 문제가 될 수 있다 ..

그래서 코드를 이렇게 짜줘야됨

  아래코드 수정할것 

/*
 * LED8on.c
 *
 * Created: 2020-12-07 오후 6:55:53
 * Author : User
 */ 

#include <avr/io.h>
#include <util/delay.h>


int main(void)
{
	DDRB = 0xFF;
    
    while (1) 
    {
		PORTB = 00000001; 
		_delay_ms(500);
		for (int i=0; i<8; i++){			
			PORTB = PORTB << 1 ;			
			_delay_ms(500);
		}
		
    }
}

 

LED8on_.DSN
0.03MB