목록Univ (103)
ITGenerations
// source 21// LED 2개중 하나가 더빠르게 (2배 빠르게)// LED 속도제어// OCRn 숫자 변경방법 #include #include ISR(TIMER0_COMP_vect){static int led=0;static char n_enter=0; n_enter++; if(n_enter == 50) // 50*10 = 500ms{n_enter = 0;if (led){ led = 0;PORTA |= 0x01;}else {led = 1;PORTA &= ~(0x01);}} } ISR(TIMER2_COMP_vect){static int led=0;static char n_enter=0;//TCNT2 =0x4E ;n_enter++; // n_enter ==25로 하는 이유: 카운트가 0~25 /0~..
// source 20// LED 2개중 하나가 더빠르게 (2배 빠르게)// LED 깜빡이기 속도 제어// e_enter 함수 변경 방법 /*#include #include ISR(TIMER0_COMP_vect){static int led=0;static char n_enter=0; n_enter++; if(n_enter == 50) // 50*10 = 500ms{n_enter = 0;if (led){ led = 0;PORTA |= 0x01;}else {led = 1;PORTA &= ~(0x01);}} } ISR(TIMER2_COMP_vect){static int led=0;static char n_enter=0; n_enter++; // n_enter ==25로 하는 이유: 카운트가 0~25 /0~50..
// source 19// 타이머 2를 추가해서 동시에 LED 2개 깜빡이기// PA0, PA1에 연결// PA -> + -> LED -> - -> GND 연결 #include #include ISR(TIMER0_COMP_vect){static int led=0;static char n_enter=0; n_enter++; if(n_enter == 50) // 50*10 = 500ms{n_enter = 0;if (led){ led = 0;PORTA |= 0x01;}else {led = 1;PORTA &= ~(0x01);}} } ISR(TIMER2_COMP_vect){static int led=0;static char n_enter=0; n_enter++; if(n_enter == 50) // 50*10 =..
// source 17 // LED 제어, 순차적으로 점멸 // PA0, PA1, PA2에 연결 /*#include #include static unsigned char pattern[3]={0xFE, 0xFD, 0xFB}; //한개씩 꺼짐 (2개씩켜짐)//={0x01,0x02,0x04}; //한개씩 켜짐 ISR(TIMER0_COMP_vect){static int index=0;static char n_enter=0; // source 1에서는 노말 모드 오버플로우 인터럽트 사용 // source 3에서는 CTC 모드 컴패어 사용 //TCNT0=100;// 타이머 초기값 설정 //TCNT0=155;
// source 16// LED 전원 제어 타이머 0 CTC모드 // PA0에 연결, on off/*#include #include ISR(TIMER0_COMP_vect){static int led=0;static char n_enter=0; n_enter++; if(n_enter==50)//50 * 10 = 500ms{n_enter=0;if(led){led=0;PORTA=0x01;} else{led=1;PORTA=0x00;} } } int main(){DDRA=0xFF;DDRB=0xFF;PORTA=0xFF; TCCR0 = (1