打印

一个小程序问题

[复制链接]
1272|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
artic2005|  楼主 | 2014-12-25 18:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 artic2005 于 2014-12-25 19:02 编辑

今天测试一个电路,其中涉及到基准电压调节,需要电阻匹配才准确。于是准备编一个小程序,输入需要的总阻值,能够生成一个二维数组,将符合的串并联匹配电阻值列出来。
(1)输入总阻值R数值;
(2)输出二维数组,显示出能够匹配的阻值,按照公式R=(R1*R2)/(R1+R2) +R3;采用倒推的方法。
刚才正在想思路呢,边想边贴:(利用LabVIEW调用C语言dll文件的方式)

int32_t fomula(int array[], int R)
{
        int R1,R2,R3,r1,r2,r3;
        Int16 i,j;
        for (i=0;i<1000;i++)
             {
              R3=0.1;
              r3=R-R3;
              R3+=0.1;
             }   for(j=0;j<1000;j++)
             {
                 R2=0.1;
                 r2=1/R2;
                R2+=0.1;
                r1=r3-r2;
                R1=1/r1;   /*计算得到R1、R2、R3然后组成一个数组,输出*/
              }
      return 0;
}   
将C代码封装成一个DLL文件,在LabVIEW中形成一个界面,输入R,就生成N行3列的数组array[]。不知是否可行?

相关帖子

沙发
keer_zu| | 2014-12-25 21:33 | 只看该作者
你的程序好像差距很大,弄一个一维的结构体数组或者链表吧。

struct right_rs{
    unsigned int r1;
    unsigned int r2;
    unsigned int r3;
};


int GetRightRs(const unsigned int r1,const unsigned int r2,const unsigned int r3,struct right_rs *rs)
{
     // 判断
     // 给rs赋值。

     return 0;
}

int test()
{
      struct right_rs rs_array[MAX_SIZE];
      
      unsigned int i,j,k,count = 0;

      for(i = 0; i < MAX_R1; i ++){
           for(j = 0; j < MAX_R2; j ++){
                for(k = 0; j < MAX_R3; j ++){
                     if(GetRightRs(i,j,k,rs_array + count) == 0){
                          count += 1;
                     }
                 }
           }
       }


}

使用特权

评论回复
板凳
mohanwei| | 2014-12-25 22:06 | 只看该作者
我猜你需要的是这个:
同相反向放大器电阻值选型+E96电阻表查找V1.0.zip (103.78 KB)

以前做模拟电路比较多,经常需要根据放大倍数和阻抗范围来筛选电阻,另外还需要用一个电位器来调整。
例如某传感器调理电路需要放大倍数8.5倍,阻抗必须大于100K,要求可调范围正负3%……那么用这个小工具就很爽了。工人也会很爽,因为3296精密多圈电位器默认就是在中点,大部分都不用调;即使要调,螺丝刀随便转几圈就好了。
有的电路设计不当,电位器动一点点输出就飘得老远,调起来会很痛苦。

使用特权

评论回复
地板
artic2005|  楼主 | 2014-12-26 09:20 | 只看该作者
mohanwei 发表于 2014-12-25 22:06
我猜你需要的是这个:

十分感谢AMO给的这个小工具,在传感器放大电路调试中,真心有用。我其实想做的就是这样一个小工具,我看了你这个工具主要是针对同相比例放大电路。在大多数情况下,涉及到电阻串并联方案的时候,也会有更多的情况出现。你这个小工具的设计思路很好!值得借鉴,我计划在此基础上继续丰富一下。多谢!

使用特权

评论回复
5
artic2005|  楼主 | 2014-12-26 09:23 | 只看该作者
keer_zu 发表于 2014-12-25 21:33
你的程序好像差距很大,弄一个一维的结构体数组或者链表吧。

struct right_rs{

版主威武!昨晚上再继续看一些东西,提出采用结构体数组的思路,是很不错的想法!也有不少这样的应用,类似于上学时候制作成绩查询系统一样。楼主的test()我领会了,多谢!继续在判断程序里面添加内容了。

使用特权

评论回复
6
artic2005|  楼主 | 2014-12-26 09:24 | 只看该作者
我帖子里敲的那一段代码,就放着了,晚上后来看了一遍自己敲的,好多问题。留着给自己看吧,继续努力!

使用特权

评论回复
7
keer_zu| | 2014-12-26 09:31 | 只看该作者
artic2005 发表于 2014-12-26 09:23
版主威武!昨晚上再继续看一些东西,提出采用结构体数组的思路,是很不错的想法!也有不少这样的应用,类 ...

如果用C++的话,它的STL库有很多方便使用的数据结构,程序就会更加简单了。

使用特权

评论回复
8
mohanwei| | 2014-12-26 09:44 | 只看该作者
artic2005 发表于 2014-12-26 09:20
十分感谢AMO给的这个小工具,在传感器放大电路调试中,真心有用。我其实想做的就是这样一个小工具,我看 ...

你说到串并联,我想起了当年也想到过,后来仔细调查发现是没有必要的……
1-E96系列已经在1%的范围内把能用到的阻值都一网打尽了,在1%这个前提下,匹配再精确都是没有意义的
2-更高精度那是需要定制如万分之五的电阻
3-从加工角度,多一个电阻多一个故障点,也多一份成本
4-处理放大倍数时(同相/反相比例放大器、可调稳压器等),单独凑一个电阻,不如用这个工具枚举一下更合适的组合

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:轨迹:PLC,C51,AVR,ARM9 方向:Zigbee,STM32,uCos-II 明白一些事,还得动手做一些事!

15

主题

103

帖子

1

粉丝