BQ系列日期的算法
以前讀BQ2060資料的時候,我一直沒能明白他日期的算法,如果那位大哥知道希望能告訴我下……
全部回復(8)
正序查看
倒序查看
我說說吧.
日期是這么計算的:MN(日期低字節(jié))PX(日期高字節(jié)),bq2060里邊固定的日期原值為:1980年0月0日對應的字節(jié)為00 00,月份增加為M,增加方式為1月:M=2,2月:M=4...日增加為N,1日:N=1,2日:N=2,由于一個月最多有31天,而N最大為F,超過15,就要進位,所以這就是為什么月份M要2倍的增加. 高字節(jié)由于月份2倍的增加,所以M會有進位,同樣也是2倍的進位.81年:X=2,82年:X=4....所以綜上所述,y年z月e日對應字節(jié)為M=2xZ(if M>15,X+1),N=E%16(if N>15,M+1).PX=(Y-1980)*2,(Y>1979@@Y<2108)
日期是這么計算的:MN(日期低字節(jié))PX(日期高字節(jié)),bq2060里邊固定的日期原值為:1980年0月0日對應的字節(jié)為00 00,月份增加為M,增加方式為1月:M=2,2月:M=4...日增加為N,1日:N=1,2日:N=2,由于一個月最多有31天,而N最大為F,超過15,就要進位,所以這就是為什么月份M要2倍的增加. 高字節(jié)由于月份2倍的增加,所以M會有進位,同樣也是2倍的進位.81年:X=2,82年:X=4....所以綜上所述,y年z月e日對應字節(jié)為M=2xZ(if M>15,X+1),N=E%16(if N>15,M+1).PX=(Y-1980)*2,(Y>1979@@Y<2108)
0
回復
@shenzhen01
我說說吧.日期是這么計算的:MN(日期低字節(jié))PX(日期高字節(jié)),bq2060里邊固定的日期原值為:1980年0月0日對應的字節(jié)為0000,月份增加為M,增加方式為1月:M=2,2月:M=4...日增加為N,1日:N=1,2日:N=2,由于一個月最多有31天,而N最大為F,超過15,就要進位,所以這就是為什么月份M要2倍的增加. 高字節(jié)由于月份2倍的增加,所以M會有進位,同樣也是2倍的進位.81年:X=2,82年:X=4....所以綜上所述,y年z月e日對應字節(jié)為M=2xZ(ifM>15,X+1),N=E%16(ifN>15,M+1).PX=(Y-1980)*2,(Y>1979@@Y
謝謝大哥,ManufacturerName,DeviceName這些是ASC碼嗎
0
回復
@shenzhen01
我說說吧.日期是這么計算的:MN(日期低字節(jié))PX(日期高字節(jié)),bq2060里邊固定的日期原值為:1980年0月0日對應的字節(jié)為0000,月份增加為M,增加方式為1月:M=2,2月:M=4...日增加為N,1日:N=1,2日:N=2,由于一個月最多有31天,而N最大為F,超過15,就要進位,所以這就是為什么月份M要2倍的增加. 高字節(jié)由于月份2倍的增加,所以M會有進位,同樣也是2倍的進位.81年:X=2,82年:X=4....所以綜上所述,y年z月e日對應字節(jié)為M=2xZ(ifM>15,X+1),N=E%16(ifN>15,M+1).PX=(Y-1980)*2,(Y>1979@@Y
很崇拜大哥,第一是大哥的大方,因為我這個話題在網上放很久了,但從來都沒人理過,或許他們認為這個是保密的資料……您卻直接告訴了我,現(xiàn)在我還有問題想問大哥,就是BQ2060EEPROM資料的想對應的地址,如果有,希望大哥能夠提供一份
0
回復
@pingker
很崇拜大哥,第一是大哥的大方,因為我這個話題在網上放很久了,但從來都沒人理過,或許他們認為這個是保密的資料……您卻直接告訴了我,現(xiàn)在我還有問題想問大哥,就是BQ2060EEPROM資料的想對應的地址,如果有,希望大哥能夠提供一份
case ManufactureDate:
val = RxBuffer[1];
val <<= 8;
val |= RxBuffer[0];
x = val / 512;
x += 1980;
x %= 100;
y = val / 32;
y &= 0x0f;
val = x * 100 + y;
DataBuffer[TestNum][Const_ManufactureDate] = val;
break;
val = RxBuffer[1];
val <<= 8;
val |= RxBuffer[0];
x = val / 512;
x += 1980;
x %= 100;
y = val / 32;
y &= 0x0f;
val = x * 100 + y;
DataBuffer[TestNum][Const_ManufactureDate] = val;
break;
0
回復
再給你個手算的~~~
500) {this.resized=true; this.width=500; this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/56/175891187013025.gif');}" onmousewheel="return imgzoom(this);">

0
回復
@hotpower
再給你個手算的~~~[圖片]500){this.resized=true;this.width=500;this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/56/175891187013025.gif');}"onmousewheel="returnimgzoom(this);">
佩服,,,,,,頂
0
回復