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

201103_LedBlink.c / DDRx

by sj0020 2020. 11. 3.

펌웨어 = 데이터시트를 보면서 레지스터를 직접 제어

 

 

DDRx 레지스터는 입출력 설정 레지스터

0은 입력 1은 출력을 의미

 

" | " :  다른 설정들은 건드리지 않고 특정 값만 바꾸겠다는 의미

| 없으면 변수초기화하는것,, 싹 다 바꿈

 

PORTB |= 0 << PORTB5; // HIGH  으로 쓸 수도 있지만  PORTB &= ~(1 << PORTB5);  으로 더 많이 쓴다

 

/*
 * 201103_LedBlink.c
 *
 * Created: 2020-11-03 오후 12:47:37
 * Author : User
 */ 

#define F_CPU   16000000UL
#include <avr/io.h>
#include <util/delay.h>

#define MY_DELAY 1000

#include <avr/io.h>


int main(void)
{
	DDRB |= 1 << DDB5; 
	
	while (1)
	{
		PORTB |= 1 << PORTB5; // HIGH
		_delay_ms(MY_DELAY);
		PORTB &= ~(1 << PORTB5); //LOW
		_delay_ms(MY_DELAY);
	}
}

 

/*
 * 201103_LedBlink.c
 *
 * Created: 2020-11-03 오후 12:47:37
 * Author : User
 */ 

#define F_CPU   16000000UL
#include <avr/io.h>
#include <util/delay.h>

#define MY_DELAY 1000


int main(void)   {
	DDRD |= 1 << DDD4;
	DDRD |= 1 << DDD5;
	DDRD |= 1 << DDD6;
	
	
	while (1)   {
		PORTD |= 1 << PORTD4;
		_delay_ms(MY_DELAY);
		PORTD |= 1 << PORTD5;
		PORTD &= ~(1 << PORTD4);
		_delay_ms(MY_DELAY);
		PORTD |= 1 << PORTD6;
		PORTD &= ~(1 << PORTD5);
		_delay_ms(MY_DELAY);
		PORTD &= ~(1 << PORTD6);
	}
}

DDRD = (1 << DDD4)|(1 << DDD5)|(1 << DDD6);

로 쓸 수도 있다

 

왔다갔다 불 켜짐

#define F_CPU   16000000UL
#include <avr/io.h>
#include <util/delay.h>

#define MY_DELAY 300


int main(void)   {
	DDRD = (1 << DDD4)|(1 << DDD5)|(1 << DDD6);
	
	
	while (1)   {
		PORTD |= 1 << PORTD4;
		_delay_ms(MY_DELAY);
		PORTD |= 1 << PORTD5;
		PORTD &= ~(1 << PORTD4);
		_delay_ms(MY_DELAY);
		PORTD |= 1 << PORTD6;
		PORTD &= ~(1 << PORTD5);
		_delay_ms(MY_DELAY);
		PORTD &= ~(1 << PORTD6);
		PORTD |= 1 << PORTD5;
		_delay_ms(MY_DELAY);
		PORTD &= ~(1 << PORTD5);
	}
}

 

https://m.blog.naver.com/PostView.nhn?blogId=eziya76&logNo=221201953044&proxyReferer=https:%2F%2Fwww.google.com%2F

 

'임베디드 > Atmega328p' 카테고리의 다른 글

atmega 328p port ddrx  (0) 2020.11.04
button  (0) 2020.11.04
arduino uno atmega pin map  (0) 2020.11.03
atmega328p datasheet  (0) 2020.11.03
AtmelStudio7.0 설치 atmega 328개발환경  (0) 2020.11.03