- 积分
- 813
- 实力分
- 点
- 金钱数
- 两
- 技术分
- 分
- 贡献分
- 分
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
这些可以作为电压调整的一个补充,也算是对cbclcxlcb的争论得答复!新开一贴。
我说这个参数只是为了吓人,而且也看过你的说明,我想你并没有看懂这个公式!
他并不仅仅是为了使工模显示的更准确,那仅仅是我写的程序的功能。
这个公式的重要性是因为他是系统用来从AD计算你的电压值的公式。
我在关于电压调整里已经说过了,
00是A点的AD值,02是B点的电压值,04是B点的AD值,06是A点的电压和B点电压的查值。
他的原理就是两点确定一条直线,然后根据这条直线来确定某个AD值所对应的电压值。
那么你目前所有的东西都是使这条直线的斜率降低。我们可以来看一下你的电参:
(0000)0 (0002)4201 (0004) 62500 (0006)290
(0000)AD为0的话所对应的电压大概是4.100V。(正常情况)
(0004)AD为62500就是-3036(因为是有符号数)对应的电压大概是4.600V(正常情况)
我所说的正常情况是指的是我的参数,一个基本正常的参数。
(0000)5218(0002)4201 (0004) 64931 (0006)1004
如果取点的话。你的A和B点分别是A(-3000,4.201)B(0,3.911)
我的A和B点是A(-600,4.201)B(0, 4.100)B点是我计算得出。
那我们从图形上看一下:
[upload=jpg]UploadFile/2003121411161022190.jpg[/upload]
黑线是我的电压直线。(为了清晰,重了一条红线)
蓝线是你的电压直线。
你的目的就是为了使电压直线的斜率变小而已。
当然你也可以说我的只是理论,缺乏实践。但是在手机中,就是这样计算电压的。
**************************************************************
不好意思,图是随便画的,不是很清楚。
我在《关于电压调整》就说过,大幅调低0006无非是减小直线的斜率,使电压比实际值在关机时偏大,充电时偏小。这样可以获得更多的待机时间。
而你的作法并没有超出公式的范围,目的也是为了使曲线的斜率偏小,如果这样的话完全不必作这样一个吓人的电参。只需固定一点,如0000和0002,然后调04和06就可以。就是说你现在这个电参和直接调小0006并无分别。
你以前写过的调整电压的新方法根本没有超出公式的范围,因为公式就是系统的准则!
***************************************************************
下面是系统从AD值获得电压的程序,我做了以下注释,大家有兴趣的可以用AT来看一下对应的值!
0xB5:0F68 ADToVolate: ;R12是传入的AD值
0xB5:0F68
0xB5:0F68 mov DPP0, #0Fh
0xB5:0F6C nop
0xB5:0F6E mov r14, word_3E522-----;取得存放电压参数的Block67地址
0xB5:0F72 mov r15, word_3E524
0xB5:0F76 add r14, #4
0xB5:0F78 extp r15, #1------------------;取得参数0004
0xB5:0F7A mov r1, [r14]
0xB5:0F7C mov r4, r12
0xB5:0F7E sub r4, r1-----------------------;AD-P0004
0xB5:0F80 neg r4---------------------------;改变符号
0xB5:0F82 mov r1, word_3E522
0xB5:0F86 mov r2, word_3E524
0xB5:0F8A extp r2, #1
0xB5:0F8C mov r3, [r1+6]---------------;取得参数0006
0xB5:0F90 mul r4, r3----------------------;P0006*(-(AD-P0004))
0xB5:0F92 mov r5, MDH
0xB5:0F96 mov r4, MDL
0xB5:0F9A extp r2, #1
0xB5:0F9C mov r3, [r1]-------------------;取得参数0000
0xB5:0F9E extp r15, #1
0xB5:0FA0 mov r14, [r14]---------------;取得参数0004
0xB5:0FA2 sub r3, r14 ;P0000-P0004
0xB5:0FA4 mov r10, r3
0xB5:0FA6 ashr r10, #0Fh
0xB5:0FA8 mov r11, r10
0xB5:0FAA mov r10, r3
0xB5:0FAC calls 0C7h, DivR4R5byR10R11-----------;(P0006*(-(AD-P0004))/(P0000-P0004))
0xB5:0FB0 mov r12, r4
0xB5:0FB2 mov DPP0, #0Fh
0xB5:0FB6 mov r13, r5
0xB5:0FB8 mov r14, word_3E522
0xB5:0FBC mov r15, word_3E524
0xB5:0FC0 extp r15, #1
0xB5:0FC2 mov r1, [r14+2]----------------------------;取得参数0002
0xB5:0FC6 mov r2, r1
0xB5:0FC8 ashr r2, #0Fh
0xB5:0FCA add r12, r1
0xB5:0FCC addc r13, r2
0xB5:0FCE mov r4, r12------------------------------;P0002+(P0006*(-(AD-P0004))/(P0000-P0004))
0xB5:0FD0 rets---------------------------------------;作为返回的电压值
0xB5:0FD0 ; End of function ADToVolate |
|