«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

ITGenerations

[AVR] LED 3개 전원 제어 타이머 0 CTC모드 본문

Univ/AVR atmega128

[AVR] LED 3개 전원 제어 타이머 0 CTC모드

ITGenerations 2017. 12. 10. 17:42

// source 17


// LED 제어, 순차적으로 점멸 

// PA0, PA1, PA2에 연결 


/*

#include <avr/io.h>

#include <avr/interrupt.h>

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; <-- 속도 조절 가능 

n_enter++;


if(n_enter==100) // <--  속도 조절 가능 

{

n_enter=0;

PORTA=pattern[index++];

if(index==3) index=0;

}


}



int main()

{

DDRA=0xFF;

DDRB=0xFF;

PORTA=0xFF;



TCCR0 = (1<<WGM01)|(0<<WGM00)|(1<<COM00)|(1<<CS02)|(1<<CS01)|(1<<CS00); 

// OCR0 시정수 

// (1/16M) * 분주비(1024) * OCR0 = 10ms --> OCR0 = 156.25 = 약156

OCR0 = 0x9C;//156



TIMSK = (1<<OCIE0); // Output Compare Interrupt Enable 0

sei(); //

while(1); // 종료방지



}

*/