본문 바로가기

[INTERFACE]/AVR_W5100_EVM

[Mega128 EVM] LED Control - 개발환경 설정

[Mega128 EVM] LED Control


사용자 삽입 이미지



프로젝트 소스 :



프로젝트 파일 구조는 00_hal 하드웨어 의존 관련 파일, 01_drv의 하드웨어 독립의 Driver관련 파일,  ex01_led... application 파일 형태로 별도의 디렉토리가 구분된다.

mega128_evm.zip파일은 시스템 관련 파일로 00_hal, 01_drv로 구성이 되며 앞으로 드라이버 파일이 추가되거나  초기화 설정파일이 변경되면 추구 업데이트 되며... 모든 예제에 적용할 수 있도록 구성하였다.


프로젝트 환경은 AVR Strudio를 이용하였고, 하드웨어 시스템을 초기화하는 System.c를 반드시 포함해서 컴파일 해야 한다.

Serial을 사용한다면 Serial.c를 포함하면 된다.




[Mega128 EVM] 에는 보드 자체에 간단히 테스트 할 수 있는 LED가 PD6, PD7포트에 각각 연결되어 있다.
이 포트는 PWM기능이 있어 LED의 불 빛을 서서히 점등하는 등의 예제 테스트에도 사용될수 있다.

/00_hal/config.h 파일에 하드웨어 의존적인 LED제어 관련 포트를 설정하도록 되어 있다.

#define LED1_BIT   BIT6
#define LED1_PORT   PORTD
#define Led1Init()   Sbi(DDRD, 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   PORTD
#define Led2Init()   Sbi(DDRD, LED2_BIT)
#define Led2On()   Cbi(LED2_PORT, LED2_BIT)
#define Led2Off()   Sbi(LED2_PORT, LED2_BIT)
#define Led2Toggle()  Tbi(LED2_PORT, LED2_BIT)



LED 회로도



소스코드
LED를 주기적으로 점등하는 예제로 가장 간단하게 구성해서 쉽게 테스트 해 보았다.

//-----------------------------------------------------------------------------

// Main Routine

//-----------------------------------------------------------------------------

int main(void)

{

        //Init System

        SystemInit();

        //Init LED

        Led1Init();

        Led2Init();

        Led2On();

        Led1Off();

        while(1)

        {

                Led1On();

                Led2Off();

                Delay(300);

                Led1Off();

                Led2On();

                Delay(300);

        }

}

//-----------------------------------------------------------------------------


실행 동영상

반응형