port F를 사용하여 LED가 깜빡이는 명령어를 실행합니다
DATASHEET에서 F의 위치를 확인해서 선을 연결합니다 PF0~PF7입니다
간단한 Register를 둘러보면
DDRF 포트의 입출력 방향 설정
PORTF 출력하고자 하는 값 LED
PINF 외부로 부터의 값 스위치
DDRF = 0xFF; 출력용
0x00; 입력용
PORTF = 0x00; LED On
0xFF; LED Off
깜빡이는 회로를 제작하면 아래>>
#include <avr/io.h>
int main(void)
{
volatile unsigned int i; //volatile는 for문을 일일다 계산하게 만듭니다
/*실행 포트 초기화*/
DDRF = 0xFF;
PORTF = 0xFF;
for(;;)
{
PORTF = 0x00;
for(i=0; i<6000;i++); //깝박이는중 딜레이를 주기위해 사용합니다
for(i=0; i<6000;i++);
for(i=0; i<6000;i++);
PORTF = 0xFF;
}
return 0;
}
for문을 추가하면 연산이 느려져 더 천천히 깜빡이게 됩니다
for문 10번돌고 회로 하나씩 번갈아가며 깝빡이는>>
int main(void)
{
volatile unsigned int i;
volatile unsigned int b;
DDRF = 0xFF;
PORTF = 0xFF;
for(;;)
{
PORTF = 0b01010101; //8개의 불을 각회로별로 컨트롤 하기 위해
for(b=0 ; b < 10 ; b++) //아래 for문을 10번 반복합니다
{
for(i=0 ; i < 6000 ; i++);
}
PORTF = 0b10101010;
for(b=0 ; b < 10 ; b++)
{
for(i=0 ; i < 6000 ; i++);
}
}
return 0;
}
번갈아가며 깜빡이게 됩니다
'Hardware > ATmega128' 카테고리의 다른 글
6. LED 실습문제 (0) | 2011.04.26 |
---|---|
5. ATmega128 자료형의 크기 (0) | 2011.04.21 |
3. DK-128개발환경 설정 (0) | 2011.04.20 |
2. ATmega128의 특징 (0) | 2011.04.19 |
1. ATmega128란? (2) | 2011.04.19 |