ITGenerations
[AVR] LED 3개 전원 제어 타이머 0 CTC모드 본문
// 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); // 종료방지
}
'Univ > AVR atmega128' 카테고리의 다른 글
[AVR] LED 깜빡이기 속도 제어/LED 2개중 하나가 더빠르게 (2배 빠르게) (0) | 2017.12.10 |
---|---|
[AVR] LED 2개 동시에 켜기[깜빡이기] (0) | 2017.12.10 |
[AVR] LED 전원 제어 타이머 0 CTC모드 (0) | 2017.12.10 |
[AVR] LED 밝기제어 (0) | 2017.12.10 |
[AVR] 한 학기동안 AVR Atmega128을 공부하면서 (0) | 2017.12.10 |