CRC-8, CRC-16, CRC-32, CRC-64, XOR, 반전입력 출력등을 지원하는 CRC 계산기 사이트 내가 만든 프로그램이 잘 도는지 확인 하려면 직접 계산한 결과와 프로그램의 결과를 비교해 보거나, 다른 사람들이 만들어 둔 프로그램의 결과와 내 프로그램의 결과를 비교해 보면 된다. Bastian Molkenthin 이라고 하는 독일 사람이 만든 페이지로, 웹 상에서 CRC-8, CRC-16, CRC-32, CRC-64 계산을 할 수 있으며, 초기값, 결과에 대한 XOR연산, 입력 반전, 출력 반전 까지 모두 적용해 볼 수 있다. 또한 상용으로 많이 사용 되는 CRC 변환에 대한 프리셋이 있어서, 필요한 내용을 쉽게 적용해 볼 수 있다. 입력 데이터 셋도 문자열, 16진수, 2진수의 세가..
디지털회로의 물리적 접점 (스위치)에서 발생하는 바운싱은 별도의 회로가 없어도, 시간지연을 통해 무시하여 우회할 수 있다.디지털 회로에서 스위치 입력을 사용할 때 항상 골치 아프게 하는 것 중 하나는 바로 바운스(bounce) 또는 채터링 (chattering) 이라고 불리우는 접점단속(接點斷屬)현상.기본적으로 스위치는 떨어진 두 지점을 물리적인 방법을 이용하여 하나로 붙여 주는 역할을 한다. 여기서 '물리적'이란 게 중요한데, 사람은 스위치를 한번 꾸~~욱 하고 누른것 같으나, 실제로는 스위치가 눌려서 두 접점이 붙는 그 찰나의 순간에, 물리적(기계적)인 반동으로 인해 튕겨 나왔다 다시 붙는 현상이 발생한다.이 현상을 없에는 가장 좋은 방법은. 비싸고 좋은 스위치를 사는것! 비싸고 좋은 스위치는 싸구려..
Real discharge test of Xingwei PALO 星威 1.5V 3400mWh AA / 900mWh AAA Li-ion batteryTraditional Nickel batteryOne of the main weaknesses of traditional Nickel rechargeable batteries is their voltage. General dry cell batteries provide a nominal voltage of 1.5V, which has become the standard for electronic products. However, the nominal voltage of Nickel-based rechargeable battery cells is 1.2V.A 0..
테이블 참조, 기본제공 함수, 직접만든 함수의 CRC-16 계산 속도를 비교해 본다.CRC 삽질 어언 한달.. ㅜㅜ직접 만든 CRC-16 계산기와Microchip 에서 제공하는 CRC-16 계산 라이브러리그리고 전통적인 방법의 테이블 기반 CRC-16 계산방법의 계산 결과 차이를 알아보기 위해 16MHz ATMETA 2560에서 CRC 연산을 수행해 보았다.직접 만든 CRC-16 계산기uint16_t CRC16_Compute(uint8_t *datastream, uint16_t numberofbyte, uint16_t poly, uint16_t initval){ for (uint16_t i=0; i0; j--) { if (initval & 0x8000) { initval = initval ..
삽질해 가면서 일단 만들어 본 CRC5, CRC7, CRC8, CRC10, CRC16, CRC32 계산 함수. 바이트 확장과 테이블 참조는 아직 좀 더 머리를 싸 매야 할 것들...//////////////////////////////////////////// SAPJIL CRC Calcurator// by eqmaker//////////////////////////////////////////#include unsigned char CRC8_Generator(unsigned char *datastream, unsigned int numberofbyte, unsigned char poly){ unsigned char rtn=0x00; for (unsigned int i=0; i=0; j--) { i..
ATMEGA에서 변수의 값을 사용해야 할 때, 개별 변수로 사용하는 것과 비트 단위로 사용할 때 걸리는 시간과, 컴파일러 최적화 옵션에 따른 용량/실행 시간 차이를 살펴 보았다 AVR과 같이 메모리가 넉넉하지만은 않은 MCU를 사용하기 위해, 변수의 비트단위까지 짜내는 일이 종종 발생 한다. 물론, 메모리가 넉넉하다면야 필요할 때 마다 독립된 변수를 선언해서 사용하는 것이 코드를 작성하기에도 편하겠지만, 그렇게 마구 남발하다 보면 메모리 제한에 걸려 필요한 변수를 선언할 수 없는 상황에 마주치게 되기도 한다. 메모리 걱정 하지 않고 변수를 펑펑 선언해 가며 사용하는 것과, BIT단위로 쪼개서 메모리를 아껴가며 사용하는 것. 과연 실제 동작에는 어떤 차이가 있을까?8개의 1bit 데이터를 사용해야 한다..