BASIC4MCU | AVR 따라하기 | 2015년 강좌 | 098 - [타이머인터럽트-12] 스위치 1개 읽어서 LED에 출력
페이지 정보
작성자 키트 작성일2017-08-23 16:44 조회3,486회 댓글0건본문
1234567891011121314151617 //--------------------------------------------------------// CVAVR// [타이머인터럽트-12] 스위치 1개 읽어서 LED에 출력//--------------------------------------------------------#include <mega128.h>//interrupt [TIM1_COMPA] void timer1_compa_isr(void){ // 100msPORTA.0=~PINE.0;}//void main(void){DDRA.0=1; PORTE.0=1;TCCR1B=0x0B; OCR1A=24999; TIMSK=0x10; //100msSREG|=0x80; // 전체 인터럽트 이네이블while(1){}}cs
12345678910111213141516171819 //--------------------------------------------------------// AVRStudio// [타이머인터럽트-12] 스위치 1개 읽어서 LED에 출력//--------------------------------------------------------#include <avr/io.h>#include <avr/interrupt.h>//ISR(TIMER1_COMPA_vect){ // 100msif(PINE&0x01)PORTA&=~0x01; // 스위치1이 1이면 LED포트에 0 출력else PORTA|= 0x01; // 스위치1이 0이면 LED포트에 1 출력}//int main(void){DDRA=0x01; PORTE=0x01;TCCR1B=0x0B; OCR1A=24999; TIMSK=0x10; //100msSREG|=0x80; // 전체 인터럽트 이네이블while(1){}}cs 타이머 인터럽트 주기 100ms는채터링 방지용 100ms 딜레이를 준 것과 동일한 효과가 있습니다.(이 예제에서는 채터링 방지용 딜레이는 의미가 없습니다.)
댓글 0
조회수 3,486등록된 댓글이 없습니다.