오늘 arduino와 실시간 시계를 통합하기 위해 몇 가지 코드를 살펴 보았습니다. 그리고 완전히 이해하지 못하는 몇 가지 이진수 (10 진수)가있었습니다. Adruino 이진에서 십진법으로의 회화 이해하기
문제의 코드
은 다음과 같습니다 : 난 정말이 어떻게 작동하는지 이해하지byte decToBcd(byte val)
{
return ((val/10*16) + (val%10));
}
byte bcdToDec(byte val)
{
return ((val/16*10) + (val%16));
}
ex: decToBcd(12);
. 나는 수학을 이해하고 있는지 또는 어떤 종류의 가정이 이용되고 있는지 확신 할 수 없다.
아래의 수학 및 데이터 유형이 얼마나 정확하게 작동하는지 설명하는 사람이 있습니까? 가능한 경우 우리가 바이트 값으로 작업 할 때 "8"대신 "16"값이 사용됩니다.
컨텍스트를 들어, 전체 코드는 여기에서 찾을 수 있습니다 : http://www.codingcolor.com/microcontrollers/an-arduino-lcd-clock-using-a-chronodot-rtc/
감사합니다. 나에게 의미가 있습니다! 비록 내가이 코드를 기초로 생각할지라도, 누군가가이 RTC에서 어떻게 해를 추출 할 것인가? 0-99에서 숫자 만 얻을 수 있다면? 2014는 2 진수 코드화 된 소수 자리로 반환됩니까? –
코드를 보지 않아서 어떻게이 함수를 사용하고 있는지 알 수 없습니다. 난 그들이 짧은 (16 비트) 변수에 저장해야한다고 생각하고 두 번 방법을 호출하여 두 bcd 바이트로 변환 할 수 있습니다 - 한 세기 동안 (년/100) 한 번 년 동안 (년 % 100) – Pawel