DDRx와 PORTx

#include <avr/io.h>
int main(){
DDRF=0xF0;
PORTF=0xF0;
}

※ AVR은 c언어를 기본으로 함. 문법도 동일.

DDRx는 전압을 조절할 PIN번호를 선택하는 코드.

PORTx는 선택된 PIN의 전압을 5V로 할지 0V로 할지 결정하는 코드.

 

DDR"F"인 이유는 내가 사용하는 보드의 schematic을 보면 알 수 있는데,

이 보드의 LED의 output은 PF4~7에 연결되어 있기 때문이다.

 

AVR은 주로 16진법을 이용하여 제어한다.

LED 제어

DDRF=0xF0;

PORTF=0xF0;

PF중 4~7의 전압을 조절할 것이다. 4~7의 전압을 5V로 한다. 는 의미이다.

 

FND 제어

#include <avr/io.h>
#include<avr/delay.h>
#define F_CPU 16000000UL //frequency설정
unsigned char FND_SEG[10] = {0x3F, 0x06, 0x5B, 0x4F, 0x66,
                     0x6D, 0x7C, 0x07, 0x7F, 0x67}; //SEG 0~9를 배열로
int main(){
DDRE=0x0C;
DDRA=0xFF;

while(1){
	PORTE=0x04;	//PE2=1일 때, 4개의 FND중 어떤 FND를 조절할지 결정하겠다는 의미.
	PORTA=0x01;
	PORTE=0x08;	//PE3=1일 때, 위에서 선택한 1개의 FND의 0~7까지의 on/off를 조절.
	PORTA=FND_SEG[1];
	_delay_ms(1);	//delay함수를 사용할 경우, 헤더파일을 추가
	PORTE=0x04;
	PORTA=0x02;
	PORTE=0x08;
	PORTA=FND_SEG[2];
	_delay_ms(1);
	PORTE=0x04;
	PORTA=0x04;
	PORTE=0x08;
	PORTA=FND_SEG[3];
	_delay_ms(1);
	PORTE=0x04;
	PORTA=0x08;
	PORTE=0x08;
	PORTA=FND_SEG[4];
	_delay_ms(1);
	}
}

출력 결과

1234

'AVR' 카테고리의 다른 글

AVR Studio4_New Project생성  (0) 2020.01.23

New Project 생성하기

먼저 AVR Studio4를 실행한다.

New Project를 누른 후 Next>>를 눌러 다음단계로 넘어간다.

AVR GCC를 선택한 후 Project name에 원하는 이름을 쓴다.

Location에서 우측에 ...을 눌러 새로운 폴더를 만드는 것을 추천한다.

그렇지 않을 경우, 사용할 때 마다 폴더가 생성되어져 지저분해질 수 있다.

Next>>를 눌러 다음단계로 넘어간다.

Debug platform: AVR Simulator를 Device: ATmega128을 선택한 후 Finish를 누르면 NewProject가 생성된다.


Project 기본설정

1: 원하는 코드를 넣는다.

2: Build Active Configuration(F7)를 눌러 코드에 error가 있는지 확인한다.

   문제가 없다면 하단의 상자에 Build가 뜬다.

3: Project>>Configuration Options>>General에서 Frequency를 16000000Hz로 한다.

   ATmega128일 경우, frequency는 16MHz이다.

4: Connect설정

   Platform: STK500로 Port는 AVR보드가 연결된 Port로 설정하여 Connect를 누른다.

※ Port는 "시작>>마우스 우클릭>>장치관리자"에서 확인할 수 있다.

AVR Studio에서 Port는 COM1~COM9까지 밖에 없다. 보드가 COM9이상에 연결되어 있다면, 임의로 1~9사이로 변경하여 설정을 바꿔준다. 이후 AVR Studio로 돌아와 Port를 설정한 후 Connect를 눌러준다.

'AVR' 카테고리의 다른 글

AVR Studio4_LED FND제어  (0) 2020.02.03

+ Recent posts