[ATmega16x EVM] LED제어 예제
AVR의 개발환경은 GCC (AVR Studio 4)를 이용했고 최대한 간단하게 작성하려고 노력했다.
AVR Studio에서 프로젝트를 하나 생성하고 옵션을 아래와 같이 설정한다.
[Mega16 EVM]보드에는 2개의 LED가 PB3, PC7포트에 각각 연결되어 있고 디버깅용으로 테스트 해 볼 수 있다.
LED제어를 위한 드라이버는 속도를 위해 간단히 define문으로 /00_hal/폴더에 [board.h]에 저장되어 있다.
Led1Init()함수로 초기화 해 주고 Led1On(), Led1Off()로 간단히 제어할 수 있다.
/*
//-----------------------------------------------------------------------------
// LED Driver
#define LED1_BIT BIT3
#define LED1_PORT PORTB
#define Led1Init() Sbi(DDRB, LED1_BIT)
#define Led1On() Cbi(LED1_PORT, LED1_BIT)
#define Led1Off() Sbi(LED1_PORT, LED1_BIT)
#define Led1Toggle() Tbi(LED1_PORT, LED1_BIT)
#define LED2_BIT BIT7
#define LED2_PORT PORTC
#define Led2Init() Sbi(DDRC, LED2_BIT)
#define Led2On() Cbi(LED2_PORT, LED2_BIT)
#define Led2Off() Sbi(LED2_PORT, LED2_BIT)
#define Led2Toggle() Tbi(LED2_PORT, LED2_BIT)
//-----------------------------------------------------------------------------
*/
예제 소스코드 자체는 상당히 간단하다. 일정간격으로 LED를 점등하는 예제 이다.
Led1Init(); Led2On(); while(1) Led1Off(); } |
USB포트로 파워를 받고 LED점등 테스트 동영상