외부인터럽트이용하여 누를때마다 LED쉬프트
페이지 정보
작성자 zkf12 작성일18-06-29 13:58 조회5,386회 댓글0건본문
이클립스 프로그램으로 외부인터럽트를 이용하는 LED 시프트 문제입니다.
SW0을 누를 때 마다 LED가 왼쪽(LED0->LED7)으로 이동
SW1을 누를 때 마다 LED가 오른쪽(LED7->LED0)으로 이동
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
uint8_t i;
ISR(INT4_vect) // INT4 Interrupt service routine
{
for(i = 0 ; i<8 ; i++){
if(!(PINE&0x10)){
PORTA = 1<<i; // 4번 비트 토글
}
}
}
ISR(INT5_vect) // INT5 Interrupt service routine
{
for(i = 0 ; i<8 ; i++){
if(!(PINE&0x20)){
PORTA = 1<<(7-i);// 5번 비트 토글
}
}
}
void init_ExInt(void)
{
EICRB = 0xaa;
EIMSK = 0xf0;
}
int main(void)
{
DDRA = 0xff;
PORTA = 0x00;
init_ExInt();
sei();
for(;1;);
}
for문을 써서 변수i로 스위치를 한번누를때마다 한번씩 시프트되는 LED제어인데 정상작동하게 만들고싶어요
댓글 : 0
조회수 : 5,386
등록된 댓글이 없습니다.