AVR
작성자 임베디드코리아
작성일17-09-27 10:31
조회2,824회
댓글0건
#include <avr/io.h> // AVR 입출력에 대한 헤더 파일
#include <avr/interrupt.h> // AVR 인터럽트에 대한 헤더파일
volatile unsigned char LED_Data = 0x00;
unsigned char timer0Cnt=0;
SIGNAL(TIMER0_OVF_vect);
int main(void) {
DDRC = 0x0F; // 포트C 를 출력포트로 설정
TCCR0 = 0x07;
TCNT0 = 112;
// 256-144=112 -> 0.01초 마다 한번씩 인터럽트 발생
TIMSK = 0x01;
TIFR |=1 << TOV0;
sei();
while (1) {
PORTC = LED_Data; // 포트C로 변수 LED_Data에 있는 데이타 출력
}
}
SIGNAL(TIMER0_OVF_vect) {
cli();
TCNT0 = 112; // 256-144=112 -> 0.01초 마다 한번씩 인터럽트 발생
timer0Cnt++; // timer0Cnt 변수를 1 증가
if(timer0Cnt == 100) { // 0.01s*100=1s를 얻기 위한 카운트 횟수
LED_Data++; // LED_Data 변수를 1 증가
if(LED_Data>0x0F) LED_Data = 0;
timer0Cnt = 0;
}
sei();
}