본문 바로가기

Embeded/ATmega128

2010년 11월 03일 수요일 (직렬 포트 통신 이용한 LED 컨트롤) /* 직렬 포트 통신을 이용한 LED 컨트롤 */ #include #define CPU_CLOCK 16000000 // MCU의 속도 #define BAUD_RATE 4800 // 통신 속도 #define BAUD_RATE_L (CPU_CLOCK/(16l*BAUD_RATE))-1 #define BAUD_RATE_H ((CPU_CLOCK/(16l*BAUD_RATE))-1)>>8 // 통신속의 결과 값을 입력하기 위해 상하위 비트로 구분 //16l은 16+L, 연산시 값이 너무 커져 overflow발생하므로 32비트 연산 //위해 16에 long을 의미하는 l을 붙임 void init_USART1(void); unsigned char USART_Receive(void); void uart_send_byte(.. 더보기
2010년 11월 02일 화요일 (직렬 포트 통신) /* 직렬 포트 통신 */ #include #define CPU_CLOCK 16000000 // MCU의 속도 #define BAUD_RATE 4800 // 통신 속도 #define BAUD_RATE_L (CPU_CLOCK/(16l*BAUD_RATE))-1 #define BAUD_RATE_H ((CPU_CLOCK/(16l*BAUD_RATE))-1)>>8 // 통신속의 결과 값을 입력하기 위해 상하위 비트로 구분 //16l은 16+L, 연산시 값이 너무 커져 overflow발생하므로 32비트 연산 //위해 16에 long을 의미하는 l을 붙임 int main(void) { unsigned char buf[]="Hellow DK128!"; unsigned int i; init_USART1(); while(1.. 더보기
FND+LED+SW 사용 두더지 잡기 게임 만들기 // 두더지 잡기 게임 #include #include "header/io.h" #define LED_DDRDDRF #define LED_OUTPORTF #define KEYPINC #define FND_DDR DDRE #define FND_OUT PORTE #define CPU_CLOCK16000000 #define TICKS_PER_SEC1000 #define PRESCALER128 volatile unsigned int g_elapsed_time;// 시간변수 /* 함수 원형 설정 */ void sleep(unsigned int elapsed_time);// sleep함수 void init_LED(void);// LED포트 초기화 함수 원형 void init_TIMER(int timers); // .. 더보기
2010년 10월 25일 월요일 (LED 랜덤 on / off) // 각각 LED 난수 발생 on/off //#include #include "portio.h" #include "TC0.h" #include #define LED_DDRDDRF #define LED_OUTPORTF #define CPU_CLOCK16000000 #define TICKS_PER_SEC1000 #define PRESCALER128 volatile unsigned int g_elapsed_time;// 시간변수 void sleep(unsigned int elapsed_time);// sleep함수 //SIGNAL(SIG_OVERFLOW0);// timer0의 오버플로우 시그널함수 //SIGNAL(SIG_OUTPUT_COMPARE0);// timer0의 비교매치 시그널함수 int minute(.. 더보기
2010년 10월 21일 (타이머 카운터) T/C 총 4가지. T/C 0, 2 = 8bit T/C 1, 3 = 16bit T/C0 을 사용할 것임. XTAL = 16Mhz 사용 (1초당 16만번의 클럭발생) 1/1000로 클럭을 나눔 = 1000번을 수행해야 1초 // FND(60초) LED(60초마다 on) Count 오버플로인터럽트 사용 #include #include #include #define CPU_CLOCK 16000000 #define TICKS_PER_SEC 1000 #define PRESCALER 64 volatile unsigned int g_elapsed_time; // 시간변수 void sleep(unsigned int elapsed_time); // sleep함수 SIGNAL(SIG_OVERFLOW0); // timer0.. 더보기