본문 바로가기

Embeded

2010년 11월 04일 목요일 [ATmega128] (직렬 포트 통신을 이용한 두더지잡기 게임) // 직렬 포트를 이용한 두더지 잡기 게임 #include "header/io.h" // 직접 만든 헤더파일 #define LED_DDR DDRF #define LED_OUT PORTF #define KEY_IN PINC #define FND_DDR DDRE #define FND_OUT PORTE //================================================================// // 인터럽트 & 통신 속도 설정 // //================================================================// #define CPU_CLOCK 16000000 // MCU의 속도 #define TICKS_PER_SEC 1000 #defin.. 더보기
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(.. 더보기
ATmel AVR Atmega128 구조 설명 AVR은 8-비트 RISC(Reduced Instruction Set Computer) 구조로 명령어가 간단하며 동작 속도가 빠르고, 1MHz당 약1MIPS(Million Instruction Per Second)의 성능을 보인다. AVR의 대표적인 특징은 다음과 같다. ● 향상된 RISC 구조 - 133개의 강력한 명령어들이 대부분 단일 클럭으로 실행된다 - 32 X 8 범용 동작 레지스터 + 주변 콘트롤 레지스터로 구성 - 16MHz 환경에서 16 MIPS 이상의 성능 - 2 사이클 곱셈기를 칩에 내장 ● 프로그램과 데이터 메모리 - 128K Byte In-System 프로그램 플래쉬 메모리 (내구성 : 최대 10,000번 쓰고 지울 수 있다.) - 칩에 내장된 부트 프로그램으로 In-System 프.. 더보기
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); // .. 더보기