cafppla1 发表于 2012-9-27 09:15:32

第二版示波器升级后直流电压不准

程序没有注释,基础太差求指导

ccmj4708 发表于 2012-9-27 10:18:30

我升级这个版本,只调整电平参数,不用调整增益的,要不调整一下参数
unsigned int   pos_const_ch1={5575,5620,5635,5640,5580,5610,5620,5640,5660};
unsigned int   pos_const_ch2={5395,5425,5430,5450,5390,5410,5420,5460,5480};
unsigned int   att_data_tab_ch1={7095,6350,5385,4610,3810,6320,5580,4815,3780};
unsigned int   att_data_tab_ch2={7080,6320,5345,4570,3745,6310,5560,4790,3715};
来试试

cafppla1 发表于 2012-9-27 10:29:56

ccmj4708 发表于 2012-9-27 10:18 static/image/common/back.gif
我升级这个版本,只调整电平参数,不用调整增益的,要不调整一下参数
unsigned int   pos_const_ch1={5 ...

大哥能不能解释下那个数组中的数字含义呢

ccmj4708 发表于 2012-9-27 12:47:29

cafppla1 发表于 2012-9-27 10:29 static/image/common/back.gif
大哥能不能解释下那个数组中的数字含义呢

unsigned int   pos_const_ch1={5575,5620,5635,5640,5580,5610,5620,5640,5660};
unsigned int   pos_const_ch2={5395,5425,5430,5450,5390,5410,5420,5460,5480};
这两句数组定义的对应的程序如下:只要修改数组中的数据就可以了。
魏坤老师说过,只改电平参数就可以了


void SET_LEVEL_CH1(unsigned char flag)
      {
          //signed char data;
          signed int offset_data;
         
          while(IORD_ALTERA_AVALON_PIO_DATA(KEY_PORT_BASE)!=NO_KEY)
            {
                IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER_BASE,0x0b);
                if(flag)
                  {
                      if(level_data_ch1<218)level_data_ch1++;
                  }
                else
                  {
                      if(level_data_ch1>34)level_data_ch1--;
                  }
                offset_data=(pos_const_ch1-(127-level_data_ch1)*level_var_data_ch1);
                IOWR_ALTERA_AVALON_PIO_DATA(PWM_POS_CH1_BASE, offset_data);
                DISP_TRIG_LEVEL();
                delay_ms(150);
            }
          disp_delay_flag=2;
          IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER_BASE,0x07);
      }
      
   void SET_LEVEL_CH2(unsigned char flag)
      {
          //signed char data;
          signed int offset_data;
         
          while(IORD_ALTERA_AVALON_PIO_DATA(KEY_PORT_BASE)!=NO_KEY)
            {
                IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER_BASE,0x0b);      
                if(flag)
                  {
                      if(level_data_ch2<218)level_data_ch2++;
                  }
                else
                  {
                      if(level_data_ch2>34)level_data_ch2--;
                  }
                offset_data=(pos_const_ch2-(127-level_data_ch2)*level_var_data_ch2);
                IOWR_ALTERA_AVALON_PIO_DATA(PWM_POS_CH2_BASE, offset_data);
                DISP_TRIG_LEVEL();
                delay_ms(150);
            }
          disp_delay_flag=2;
          IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER_BASE,0x07);
      }
      

cafppla1 发表于 2012-9-27 13:11:15

ccmj4708 发表于 2012-9-27 12:47 static/image/common/back.gif
unsigned int   pos_const_ch1={5575,5620,5635,5640,5580,5610,5620,5640,5660};
unsigned int   po ...

明白了,直流档位不能直接读出数据,要是能改进就好了
页: [1]
查看完整版本: 第二版示波器升级后直流电压不准