[Codevision]OK-128 kit 스위치 상승펄스 캣치

[Codevision]OK-128 kit 타이머0를 이용해 입력 채터링 방지 방법 위 링크의 소스를 토대로 작성됨. 만약 아래와 같은 코드를 사용해 어떤 값을 증가시킨다면 엄청난 속도로 값이 증가될 것이다. if(TIMER_KEY3>=KEYTIME){adr++;} 키가 한번 눌리면 1회만 증가시킬 필요가 있는데 아래 소스를 참고해보자.

 

[Codevision]OK-128 kit 타이머0를 이용해 입력 채터링 방지 방법

스위치로 입력받아 사용하면  물리접촉에 의한 필연적 구조 때문에”chattering”이 발생한다. 이 채터링을 “debouncing” 해야 한다는 말은 많이들 들었을 것이다.   흔한 debouncing 기법은 delay함수를 통해 약 20ms내외로 지연시키는 방법이 일반적이다. 이번 예제는 타이머 인터럽트를 통해 사용하는 소개한다. delay 함수를 쓰지 않으니 효율적인 프로그래밍이 가능하다. 1. 10ms마다 타이머0 오버플로우 인터럽트 루틴에 진입한다. 2. 스위치마다 타이머 변수가 있고 키가 …

Continue reading ‘[Codevision]OK-128 kit 타이머0를 이용해 입력 채터링 방지 방법’ »

[회로] 릴레이 두 개를 이용한 자기유지 회로

릴레이 두개를 이용해 자기유지회로를 구성한 회로 예이니 포토커플러등의 저항등은 알아서 구성하도록 하고 동작 예제는 Signal이 입력되면 Relay1, Relay2가 여자되는데 이 때 Signal에 신호가 없어져도 Relay1의 B접 스위치 때문에 여자가 유지되어 Relay2 접점은 그대로 유지된다. PB를 누르면 소자되어 Relay2의 접점도 열린다.

[C Language – Example] 비트제어

마이크로 프로세서를 다루다보면 비트제어를 많이 하게된다. 논리연산으로 해도 되지만 좀 더 편하기 쓰기 위해 매크로를 통해서 제어하면 보다 편리하게 비트제어가 가능하다.

 

[C Language – Example] 시리얼통신 데이터 파싱

AVR등을 이용해 시리얼통신을 자주 이용하게 된다 이 때 수신 받은 아스키데이터를 Hex Code 형태로 변경해야 할 필요가 있다.

 

[C Language – Example] HEXTOASCII

Hex To Ascii Example

   

[C Language – Example] ASCIITOHEX

Ascii To Hex Example