GithubHelp home page GithubHelp logo

creativelau / mini-dso Goto Github PK

View Code? Open in Web Editor NEW
590.0 590.0 211.0 5.42 MB

用STC单片机制作的简易示波器 / DIY Mini Digital Storage Oscilloscopes(DSO) with STC MCU

License: MIT License

Assembly 6.57% C 92.31% C++ 1.12%

mini-dso's People

Contributors

creativelau avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mini-dso's Issues

关于输入采样电路的疑问

老刘你好,我发现你设计的电路中,输入采样电路采用10k串上2k的电阻进行分压的。对此,我有点疑问,如下图:
MINI-DSO

一些计算细节的原理疑问?

老刘你好,我在学习您的示波器代码的时候对以下几个计算公式感到了一些困惑,它们没有数学公式的说明,难以理解这样处理的缘由,希望您能给予解答。

  • 问题1:在chart.c的AnalyseData()函数中,处理当前选择Option_MeaWay_AC方式进行测量的处理中,对DC输入您是用Mvoltage_Aver += (VMax_m + VMin_m) >> 1进行处理,但是AC部分却做了如下复杂计算,这个计算的依据是什么?
    0ZM82.png

  • 问题2:回头再看VMax_m VMin_m,它们同样经过了一些处理,除此之外,它们是通过adcMax-BiasVoltage以及adcMin-BiasVoltage转换得到,BiasVoltage默认值为8900我原来猜测是4092满量程的偏移,但这个值还是让我感到困惑。
    0jQug.png

  • 问题3:关于频率计算方面,您给了一个 $Waveform_{freq}=25000(ms)/(Range \times Interval)$ or $25000000(us)/(Range\times Interval)$ 的公式,25000 or 25000000这个基准值为什么这么选取?是与缓存大小相关吗?
    0je3t.png

    switch (ScaleH)
    {
    case 0:                                      //500ms
        WaveFreq = 50.0f / (float)WaveLength + 0.5; //WaveFreq=25000/(500*WaveLength);
        break;

    case 1:                          //200ms
        WaveFreq = (125.0f / (float)WaveLength); //WaveFreq=25000/(200*WaveLength);
        break;

    case 2:                          //100ms
        WaveFreq = (250.0f / (float)WaveLength); //WaveFreq=25000/(100*WaveLength);
        break;

    case 3:                          //50ms
        WaveFreq = (500.0f / (float)WaveLength); //WaveFreq=25000/(50*WaveLength);
        break;

    case 4:                           //20ms
        WaveFreq = (1250.0f / (float)WaveLength); //WaveFreq=25000/(20*WaveLength);
        break;

    case 5:                           //10ms
        WaveFreq = (2500.0f / (float)WaveLength); //WaveFreq=25000/(10*WaveLength);
        break;

    case 6:                           //5ms
        WaveFreq = (5000.0f / (float)WaveLength); //WaveFreq=25000/(5*WaveLength);
        break;

    case 7:                            //2ms
        WaveFreq = (12500.0f / (float)WaveLength); //WaveFreq=25000/(2*WaveLength);
        break;

    case 8:                            //1ms
        WaveFreq = (25000.0f / (float)WaveLength); //WaveFreq=25000/(1*WaveLength);
        break;

    case 9:                            //500us
        WaveFreq = (50000.0f / (float)WaveLength); //WaveFreq=25000000/(500*WaveLength);
        break;

    case 10:                            //200us
        WaveFreq = (125000.0f / (float)WaveLength); //WaveFreq=25000000/(200*WaveLength);
        break;

    case 11:                            //100us
        WaveFreq = (250000.0f / (float)WaveLength); //WaveFreq=25000000/(100*WaveLength);
        break;
    }
  • 问题4:在问题3中得到的$Waveform_{freq}$您又做了如下计算,这样做的目的以及依据是什么?
    0jUD1.png
WaveFreq = (float)WaveFreq /  (0.0162f * (log10(WaveFreq) /log10(2.7) ) + 0.9398f);

@CreativeLau 谢谢!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.