BASIC4MCU | 질문게시판 | ATmega128 스위치 채터링 관련 질문드립니다
페이지 정보
작성자 yeon 작성일2022-05-27 05:32 조회2,664회 댓글3건본문
스위치를 눌렀을 때 led불이 여러 개 켜지는 스위치 채터링 현상을 소프트웨어적으로 잡기위해서 외부 인터럽트를 사용하였는데
눌렀을 때 스위치 채터링 현상을 잡아서 누를 때 하나씩 들어오게 했더니 떼었을 때 led에 불이 하나 더 들어와서 어떻게 해야할지 잘 모르겠습니다
현재까지 눌렀을 때 채터링은 잡은 상태입니다
#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 16000000UL
#include <util/delay.h>
ISR(INT4_vect){
if(PORTC == 0x00)
PORTC = 0xF0;
else
PORTC = PORTC << 1;
_delay_ms(10);
if(EIFR & (1<<4))
EIFR = EIFR | (1<<4);
}
int main(void)
{
DDRC = 0xF0;
PORTC = 0xF0;
PORTE = PORTE | (1 << PORTE4); // 내부 풀업 기능 활성화
EICRB = EICRB | (1 << ISC41); // 외부 인터럽트 4번 하강 모서리
SREG = SREG | (1 << 7); // 전체 인터럽트 허용
EIMSK = EIMSK | (1 << INT4); // 외부 인터럽트 4번 허용
while (1)
{
}
return 0;
}
댓글 3
조회수 2,664master님의 댓글
master 작성일
https://cafe.naver.com/circuitsmanual/220324
같은 분이겠죠?
답글을 적었으니 참고하세요
여기든 전자공작이든 한 곳에만 작성해주세요~
yeon님의 댓글
yeon
답변 감사드립니다!!
그런데 카페에 올린건 제가 아니고 다른 분인 것 같네요!!
여기랑 지식인 말곤 질문한 곳이 없어서요!
master님의 댓글
master
그렇군요
링크 글을 참고하세요
즉시가입 가능하고 모든 글을 볼 수 있습니다.
네이버 규정상 가입 24시간 후에 탈퇴 할 수 있습니다.