divupup
驱动牛犊
驱动牛犊
  • 注册日期2010-05-10
  • 最后登录2010-05-15
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1728回复:1

直接控制主板IO口输出方波???

楼主#
更多 发布于:2010-05-10 13:43
最近想直接控制主板IO口搞点东西,如并口,串口,,想输出如38K (26us)的方波,或者采集38K的波形输入。 我做了以下尝试,在循环中直接读取IO的状态变化, 发现采集的不是很精确,采集到的波形变化有漏 的,也很随机。说明这种方式达不到精度。  是否可以用中断来采集?
我找了一些资料,发现有这么用句话:“win 不是一个实时系统”,所以对我的想法产生了怀疑。难道windows不能做这样的事情? 想来也是,大都是计算机和芯片通讯,芯片做采集工作。
我也在想在usb线上不接任何芯片,在pc驱动程序上直接控制usb的一根线输出方波, 是否可行?  
请高手解惑这方面的疑问、。
divupup
驱动牛犊
驱动牛犊
  • 注册日期2010-05-10
  • 最后登录2010-05-15
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2010-05-10 13:48
我的采集代码如下:
            ULONG mCurrStatus,mTemp;
            int ircount;
            ircount = 0;            

            mCurrStatus = _inp(0x0379);            
            while(1)
            {
                if(ircount == 0)
                {
                    mTemp = _inp(0x0379);
                    if (mTemp!=mCurrStatus)
                    {                                
                        KeQueryTickCount(&tm1);
                        mCurrStatus = mTemp;
                        ircount++;
                    }
                } else                                
                {
                    mTemp = _inp(0x0379);
                    if (mTemp!=mCurrStatus)
                    {                        
                        KeQueryTickCount(&tm1);                        
                        mCurrStatus = mTemp;
                        ircount++;
                        if(ircount>6000)
                            break;
                    }else
                    {                        
                        KeQueryTickCount(&tm2);
                        if((tm2.QuadPart-tm1.QuadPart)>32)                        
                            break;
                    }
                }
            }
游客

返回顶部