본문 바로가기

Embeded

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.. 더보기
2010년 10월 14일 목요일 (FND컨트롤) #include int main() { DDRC = 0x00; DDRE = 0xff; volatile unsigned char a=0; volatile unsigned char R=0; volatile unsigned char L=0; for(;;) { asm("NOP"); R=0x00; L=0x00; a=0; while(1){ if(9>=a) { //PORTE=R; _delay_ms(200); a++; R++; } else if(0x99>=R) { a=0; R=0; L=L+0x10; R=L; } else { a=0; R=0; L=0; } PORTE=R; }} return 0; } /* 00~99까지 증가 FND #include int main() { DDRC = 0x00; DDRE = 0xff; vol.. 더보기
2010년 10월 13일 수요일 하버드 ☜ data bus : 8bit, adress bus : 16bit, RISC, 133개의 명령어 PIN ☜ Port A~F 까지는 8bit G만 5bit 총 54개 char : 1byte. int : 2byte. float : 4byte. long : 4byte. dubble : 4byte. *(포인트) : 2byte. 더보기
2010년 10월 12일 화요일 I/O reg 3가지 DDRx : 데이터 입출력 방향 PORTx : 데이터 출력 PINx : 포트x로 들어오는 입력값 포트F 출력용 사용 #include int main() { DDRF = 0xFF; //F포트를 출력으로 설정 PORTF = 0x00; //F포트의 LED on return 0; } 더보기