Avr초보질문
글쓴이: qw00wp / 작성시간: 일, 2017/10/15 - 12:16오후
switch_hit()
◦ 스위치가 눌려지는 순간에만 1을 반환하는 함수
uint8_t switch_hit(void)
{ static uint8_t prev_state = _BV(SW2); //여기서 스태틱 함수를 왜사용하는거죠..? 스태틱함수가 없으면 어떤일이일어나나요
uint8_t cur_state;
cur_state = PINE&_BV(SW2);
if(prev_state != cur_state)
{
prev_state = cur_state;
if(!cur_state) return 1;
else return 0;
} else return 0;
위함수에서 스우치누를때 바운싱현상 해결하려면
코드를 어떻게 바꾸어야하나요?
Forums:
스태틱 함수가 아니라 스태틱 변수이고요, 함수가 맨
스태틱 함수가 아니라 스태틱 변수이고요, 함수가 맨 처음 실행될 때 단 한번 실행됩니다. 그래서 init() 함수를 안 사용해도 초기화가 가능하죠 (간단한 경우에는요).
static 변수이고, 다른 함수에서 이 변수를
static 변수이고, 다른 함수에서 이 변수를 참조하지 못한다는 것을 제외하면 전역 변수와 동일합니다.
바운싱이 채터링 말씀하시는 건가요?
바운싱이 채터링 말씀하시는 건가요?
MCU마다 다르겠습니다만 Atmel사의 MCU중 어떤 제품은 하드웨어적으로 이를 지원합니다
glitch filter 를 enable하면 PIO의 input에서 그런 문제를 없애주네요
댓글 달기