wyf-锋 发表于 2014-8-27 20:53:24

春风电源程序

想知道这个子函数的意思 为什么赋值10 11 12 13 14,为什么要+0x01;

oid DispCal(vu8 CalPointer)
{
    if(CalPointer == 0)
        {
          DispBuff = 0;
                DispBuff = 0 + 0x10;
                DispBuff = 1;
                DispBuff = 0;
               
                DispBuff = 10;//------A
                DispBuff = 11;//------d
                DispBuff = 12;//------J
                DispBuff = 13;//------
        }
    if(CalPointer == 1)
        {
          DispBuff = 3;
                DispBuff = 0 + 0x10;//0.
                DispBuff = 0;
                DispBuff = 0;
               
                DispBuff = 10;//------A
                DispBuff = 11;//------d
                DispBuff = 12;//------J
                DispBuff = 13;//------
        }
        if(CalPointer == 2)
        {
          DispBuff = 10;//------A
                DispBuff = 11;//------d
                DispBuff = 12;//------J
                DispBuff = 13;//------
               
                DispBuff = 0 + 0x10;//------0.
                DispBuff = 1;//------1
                DispBuff = 0;//------0
                DispBuff = 0;//------0
        }
        if(CalPointer == 3)
        {
          DispBuff = 10;//------A
                DispBuff = 11;//------d
                DispBuff = 12;//------J
                DispBuff = 13;//------
               
                DispBuff = 4 + 0x10;//------4.
                DispBuff = 0;//------0
                DispBuff = 0;//------0
                DispBuff = 0;//------0
        }
}

suda2008wuli 发表于 2014-8-27 22:44:19

加了小数点的字符

wyf-锋 发表于 2014-8-28 08:46:06

suda2008wuli 发表于 2014-8-27 22:44
加了小数点的字符

额 不是太明白 能说详细一点 吗

gallop020142 发表于 2014-8-28 09:37:24

wyf-锋 发表于 2014-8-28 08:46
额 不是太明白 能说详细一点 吗

你先看看LED数码管是怎么点亮的,怎么显示数字的,然后你再仔细看看程序,
DispNum]才是决定数码管各LED点亮与否。

wyf-锋 发表于 2014-8-28 09:58:18

gallop020142 发表于 2014-8-28 09:37
你先看看LED数码管是怎么点亮的,怎么显示数字的,然后你再仔细看看程序,
DispNum才是决定数 ...

好的 谢谢

wyf-锋 发表于 2014-8-28 09:59:51

gallop020142 发表于 2014-8-28 09:37
你先看看LED数码管是怎么点亮的,怎么显示数字的,然后你再仔细看看程序,
DispNum才是决定数 ...

我想问一下 春风电源的程序里对踩回来的AD的处理方法叫什么

gallop020142 发表于 2014-8-28 10:13:50

本帖最后由 gallop020142 于 2014-8-28 10:16 编辑

wyf-锋 发表于 2014-8-28 09:59
我想问一下 春风电源的程序里对踩回来的AD的处理方法叫什么

不知道你问的是不是这个:
校准后得到4个AD和4个DA值,分别对应最大、最小电压/电流

以输出期望电压为例,输入为期望的电压x, 输出为对应的DA值y:
y = a*x + b

DAUcal30 = a * 30 + b
DAUcal01 = a * 0.1 + b
a = (DAUcal30 - DAUcal01) / (30 - 0.1)
for any x in :
y - DAUcal01 = a * x + b - (a * 0.1 + b) = a * (x - 0.1)
so:
y = DAUcal01 + (x - 0.1) * a

wyf-锋 发表于 2014-8-28 10:49:46

gallop020142 发表于 2014-8-28 10:13
不知道你问的是不是这个:
校准后得到4个AD和4个DA值,分别对应最大、最小电压/电流



就是这个函数的处理方法

if(U >= ADUcal01)
                {
                       V_Coefficient = (30.0-0.10)/(float)(ADUcal30 - ADUcal01);//¼ÆËãÿ¸öLSBµÄµçѹֵ
                       voltage = ((float)(U - ADUcal01)*V_Coefficient)+0.10; //¼ÆËãʵ¼Êµçѹֵ
                }
        else
                {
                       V_Coefficient = 0.1/(float)ADUcal01;
                       voltage = ((float)U * V_Coefficient);
                       if(voltage <= 0.07) voltage = 0;
                       else if(voltage > 0.07) voltage = voltage - 0.07;
                }
        if(voltage < 0)          voltage = 0;

cchwhk 发表于 2014-8-28 17:10:40

全是魔鬼数字。。。。逻辑混乱。。。。

lmt50211 发表于 2014-8-29 12:23:34

本帖最后由 lmt50211 于 2014-8-29 12:26 编辑

vu8 DispNum[] = { 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x39,0x77,0x38,0x00,0x00,0x00,
                  // 0    1    2    3    4    5    6    7    8    9           C    A    L       13          14   15
                                  0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF
                                  //0.   1.   2.   3.   4.   5.   6.   7.   8.   9.
                               };


对应这个表格里的,前面10个是0-9的编码,16-25是加了小数点的0-9,第10个是“C”,第11个是“A”,第12个是J,所以会这样赋值
if(CalPointer == 0)
      {
            DispBuff = 0;
                DispBuff = 0 + 0x10;//加0X10相当于加16,0-9对应表格里面就是16-25,即0.----9.
                DispBuff = 1;
                DispBuff = 0;
               
                DispBuff = 10;//------A
                DispBuff = 11;//------d
                DispBuff = 12;//------J
                DispBuff = 13;//------
      }

wyf-锋 发表于 2014-8-29 15:54:25

lmt50211 发表于 2014-8-29 12:23
vu8 DispNum[] = { 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x39,0x77,0x38,0x00,0x00,0x00,
...

多谢大神提点

lmt50211 发表于 2014-8-29 16:11:58

wyf-锋 发表于 2014-8-29 15:54
多谢大神提点

大家一起学习

wyf-锋 发表于 2014-8-29 18:07:47

lmt50211 发表于 2014-8-29 16:11
大家一起学习

大神以前做过春风电源吗

lmt50211 发表于 2014-8-30 08:39:45

wyf-锋 发表于 2014-8-29 18:07
大神以前做过春风电源吗

有弄过模拟部分的,用电位器控制。最近看有没有时间画板,有的话还是可以做一下。

THF 发表于 2014-9-4 21:37:40

lmt50211 发表于 2014-8-30 08:39
有弄过模拟部分的,用电位器控制。最近看有没有时间画板,有的话还是可以做一下。 ...

用电位器是怎样控制的呢?能否给个图看看,谢谢

lmt50211 发表于 2014-9-5 08:23:53

THF 发表于 2014-9-4 21:37
用电位器是怎样控制的呢?能否给个图看看,谢谢

也就是把DA输入换成电位器分压调节。
页: [1]
查看完整版本: 春风电源程序