微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 如何实现高速采集

如何实现高速采集

时间:10-02 整理:3721RD 点击:

请问这段程序修改一下可以将采集速度提高吗?谢谢

/**********************************************

函数名:定时器0中断服务函数,timer0pro()

功能:定时50ms*tt,改变tt值可以改变循环采集频率

**********************************************/

        void timer0pro(void) interrupt 1 using 0

        {

         TH0=0x3c;                               //;设置定时时间常数

         TL0=0x0b0;

         tt0--;                             //tt=40,减40次,说明50*40=2000ms到了

         if(tt0==0)

          {

              tt0=40;                       //使用T1后T0定时时间明显缩短,所以tt赋了比较大的值

              ad_td=ad_td+0x10;

               if(ad_td==0x0f)ad_td=0x8f;

          }

        }

       voidtimer1pro(void) interrupt 3 using 0   //产生100us定时,P1.7产生200us方波,给ad使用

        {

                if(ad_data>ad_high)                         //上限报警,P1.1的led点亮,0亮1灭

                 {

                  TH1=0x0ff;                                     //;设置定时时间常数,蜂鸣器响频率高

                  TL1=0x0b0;

                     speeker=!speeker;                              

                 }

                if(ad_data<ad_low)                       //下限报警,P1.0的led点亮,0亮1灭

                 {

                  TH1=0x0ec;                                     //;设置定时时间常数,蜂鸣器响频率低

                  TL1=0x0b0;

                     speeker=!speeker;                              

                 }         }

       voidtimer2pro(void) interrupt 5 using 0   //产生100us定时,P1.7产生200us方波,给ad使用

        {

                TF2=0;

                ad_clk=~ad_clk;                      //产生200us周期脉冲,5k赫兹信号,提供给ad0808脉冲输入端

               

         }

      

       voiddelay(unsigned int i)                 //定时i毫秒

       {

                unsigned int j;

                for(;i>0;i--)

                  for(j=0;j<125;j++);

       }

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top