打印

为什么两个读ADC的子程序,同时调用就不能显示/

[复制链接]
1507|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xzhenggen|  楼主 | 2007-8-15 13:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
xzhenggen|  楼主 | 2007-8-15 13:26 | 只看该作者

第一个子程序如下:


void change(unsigned long temp)
{
       uchar i;
       serial_buff[4]=10;  //小数点
       for(i=1;i<8;i++)
       {
        if(i==4)continue; //跳过小数点的位置
        if(temp!=0)
        {
            serial_buff[8-i]=temp%10;
            temp/=10;
        }
        else 
        {
            serial_buff[8-i]=0;
        }
       } 
       if(serial_buff[1]==0)
       {        
        serial_buff[1]=12;    //空格
        if(serial_buff[2]==0)
        {
         serial_buff[2]=12;  //空格
        }
    }
}

void display_Pi() 
{
    //unsigned int Pi;
    float pow;
    //int value;
    unsigned char i;
    //Pi=read7896();
    //pow=Pi*AD_Loop_PickVol_PER;//AD采集数值
     pow=VariablePi*AD_Loop_PickVol_PER;//AD采集数值
    // pow=VariableVl*AD_Loop_PickVol_PER;//AD采集数值
    // value = pow * 100 + (value > 0 ? 0.5 : -0.5); //大于0加0.5, 小于0减0.5
    if(pow>=1)
         {
             change(pow*1e3);
             draw_bmp(104,1,8,num[12]);//显示" "
        }
        else if(pow>=1e-3)
        {
            change(pow*1e6);
            draw_bmp(104,1,8,ELAPHT[11]);//显示"m"
        }
        else if(pow>=1e-6)
        {
            change(pow*1e9);
            //将前面的3位结果放到后面
            serial_buff[7]=serial_buff[3];
            serial_buff[6]=serial_buff[2];
            serial_buff[5]=serial_buff[1];
            //前面4位改为空格
            
            for(i=1;i<5;i++)serial_buff=12;
            draw_bmp(104,1,8,ELAPHT[10]);//显示"u"
        }
        else
         {
          change(0);
          for(i=1;i<7;i++)serial_buff=12;
         draw_bmp(104,1,8,ELAPHT[10]);//显示"u"
         }
        //显示读数
      for(i = 1; i <8; i++)
       {
         draw_bmp(32+i*8,1,8,num[serial_buff]]);
      }
      
        draw_bmp(8,1,8,num[15]);//显示":"
        draw_bmp(0,1,8,ELAPHT[13]);//显示"Pi"
        draw_bmp(112,1,8,ELAPHT[12]);//显示"W"     
}

使用特权

评论回复
板凳
xzhenggen|  楼主 | 2007-8-15 13:27 | 只看该作者

第二个子程序如下:


void di_change(unsigned int dtemp)
{
       uchar di;
       serial_buff_di[3]=10;
       for(di=1;di<6;di++)
       {
           if(di==3)continue;
        if(dtemp!=0)
        {
            serial_buff_di[6-di]=dtemp%10;
            dtemp/=10;
        }
        else 
        {
            serial_buff_di[6-di]=0;
        }
       }
       if(serial_buff_di[1]==0)
       {        
        serial_buff_di[1]=12;    //空格
      }
}

void di_display_Pi() 
{
    
    unsigned char di,drow=0;
    float dpow;
    float dy;
    unsigned long dx;
    uint dz;
    //int value;
    //Pi=read7896();
    //pow=Pi*AD_Loop_PickVol_PER;//AD采集数值
     //pow=VariablePi*AD_Loop_PickVol_PER;//AD采集数值
     //dpow=VariableVl*AD_Loop_PickVol_PER;//AD采集数值
    // value = pow * 100 + (value > 0 ? 0.5 : -0.5); //大于0加0.5, 小于0减0.5
    dpow=0.001111489;
    if(dpow>=1)
         {
             dx=dpow*1e3;
             dy = 10*log10 (dx) ; 
         dz=dy*100 + (dz > 0 ? 0.5 : -0.5);
             di_change(dz);//显示“W”转换为“dBm"
        }
        else if(dpow>=1e-3)
        {
            dx=dpow*1e6;
            dy = 10*log10 (dx)-30 ; 
        dz=(dy)*100 + (dz > 0 ? 0.5 : -0.5);
            di_change(dz);//显示“mW”转换为“dBm"
        }
        else if(pow>=1e-6)
        {
            dx=dpow*1e9;
            dy = 10*log10 (dx)-60 ; 
            if(dy<0)
            {
               dy*=-1;
            }
        dz=(dy)*100 + (dz > 0 ? 0.5 : -0.5);
            di_change(dz);//显示“uW”转换为“dBm"
            draw_bmp(32,0,8,num[14]);//显示"-"
        }
        else
         {
          for(di=1;di<6;di++)serial_buff_di[di]=14;
         }
        //显示读数
      for(di = 1; di <6; di++)
       {
         draw_bmp(40+di*8,0,8,num[serial_buff_di][di]]);
      }
        draw_bmp(96,0,8,ELAPHT[3]);//显示"d" 
        draw_bmp(104,0,8,ELAPHT[4]);//显示"B" 
        draw_bmp(112,0,8,ELAPHT[11]);//显示"m" 
        draw_bmp(8,0,8,num[15]);//显示":"
        draw_bmp(0,0,8,ELAPHT[13]);//显示"Pi"
}

使用特权

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

本版积分规则

55

主题

529

帖子

1

粉丝