디지털 회로의 물리적 접점인 스위치를 사용할때 생기는 접점단속현성인 바운싱/채터링 현상은 디지털 시스템의 입력 오류를 만든다. 이를 해결하기 위한 여러가지 방법 중 가장 간단하고 추가적인 회로 구성이 필요하지 않은 방법인 인터럽트를 사용한 해결 방법을 알아본다.바운싱디지털 회로에서 스위치 입력을 사용할 때 항상 골치 아프게 하는 것 중 하나는 바로 바운싱(bouncing) 또는 채터링 (chattering) 이라고 불리우는 접점단속(接點斷屬) 현상이다.기본적으로 스위치는 떨어진 두 지점을 물리적인 방법을 이용하여 하나로 붙여 주는 역할을 한다. 여기서 '물리적'이란 게 중요한데, 사람은 스위치를 한번 꾸~~욱 하고 누른것 같으나, 실제로는 스위치가 눌려서 두 접점이 붙는 그 찰나의 순간에, 물리적(기계적..
테이블 참조 기법을 사용한 CRC 계산 속도와, Microchip에서 제공하는 CRC 계산 라이브러리, 그리고 직접 만든 CRC 계산 함수의 처리 속도를 비교해 본다. CRC를 계산하는 방법은 크게 2가지 방법이 있다. 첫 번째 방법은, CRC계산을 곧이 곧대로 정직하게, 꾿꾿하게 처음부터 끝까지 한자리씩 밀어내며 계산하는 방법이다. 두 번째 방법은, 들어올 수 있는 모든 데이터에 대해 미리 CRC연산을 한 표(룩업 테이블)를 참조해 가며 계산을 진행 하는 것이다.그동안 몇 번에 걸친 실험 결과로, 메모리가 충분 하다면 계산보다는 읽어오는게 훨씬 나은 선택이라는 사실은 이미 알고 있었다. 그러던 중, 마이크로칩 스튜디오의 소스들을 보다가, 마이크로칩에서 제공하는 CRC-16 계산 라이브러리가 있는 것을 ..
ATMEGA 2560의 디지털포트를 여러가지 방법을 이용해 반전시켜보고, 속도의 차이를 확인해 보았다. 연산의 결과를 포트에 대입하는것과, 그냥 상수값을 대입할 경우 동작의 속에 유의미한 차이가 있었으며, 전압 상승과 전압 하강때의 반응 속도가 서로 다른 것을 확인할 수 있었다.ATMEGA 2560의 PIN OUT을 통해 클럭을 만들어 사용한다고 했을 경우, 만들어 낼 수 있는 가장 빠른 클럭은 얼마까지 가능할까 하는 궁금증이 들어 시험해 본 포트 반전 속도 시험포트 반전while(1){ PORTA = ~PORTA;}현재 포트를 그냥 반전시켜 버린다. 약 1.6MHz의 클럭을 만들어 낼 수 있었다.상수 교차 대입while(1){ PORTA = 0XFF; PORTA = 0X00;}포트에 0과 1을 계속 대..