
프로젝트 소스 :
프로젝트 파일 구조는 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); } } //----------------------------------------------------------------------------- |
실행 동영상