xiaomihu 发表于 2009-9-17 20:14:06

哪位高手可以给分析下程序呀

void DDS_out(unsigned long freq_value)
    {
      unsigned long dds;
      unsigned int dds1,dds2;
      dds=freq_value*8.94784853333336;为什么乘以这些呀

      dds=dds<<2;下面的都不动了
      dds1=dds;
      dds2=dds>>16;
      dds1=dds1>>2;
      dds2=dds2&0x7fff;
      dds2=dds2|0x4000;
      dds1=dds1&0x7fff;
      dds1=dds1|0x4000;
      write_2byte(0x2028);
      write_2byte(dds1);
      write_2byte(dds2);
    }

temp=spidata;
                                 switch(temp)//计算控制数据
                                  {
                                       case 0:X1=1;X10=0;X100=0;dac_data0=960;spi_out_b(dac_data0);dac_data1=1960;spi_out_a(dac_data1);break;   //5mv/div
                                       case 1:X1=1;X10=0;X100=0;dac_data0=830;spi_out_b(dac_data0);dac_data1=1945;spi_out_a(dac_data1);break;   //10mv
                                       case 2:X1=1;X10=0;X100=0;dac_data0=707;spi_out_b(dac_data0);dac_data1=1965;spi_out_a(dac_data1);break;   //20mv
                                       case 3:X1=1;X10=0;X100=0;dac_data0=545;spi_out_b(dac_data0);dac_data1=1950;spi_out_a(dac_data1);break;   //50mv
                                       case 4:X1=1;X10=0;X100=0;dac_data0=415;spi_out_b(dac_data0);dac_data1=1948;spi_out_a(dac_data1);break;   //100mv
                                       case 5:X1=1;X10=0;X100=0;dac_data0=270;spi_out_b(dac_data0);dac_data1=1963;spi_out_a(dac_data1);break;   //200mv
                                       case 6:X1=0;X10=1;X100=0;dac_data0=545;spi_out_b(dac_data0);dac_data1=1952;spi_out_a(dac_data1);break;   //500mv
                                       case 7:X1=0;X10=1;X100=0;dac_data0=415;spi_out_b(dac_data0);dac_data1=1958;spi_out_a(dac_data1);break;   //1v
                                       case 8:X1=0;X10=1;X100=0;dac_data0=270;spi_out_b(dac_data0);dac_data1=1960;spi_out_a(dac_data1);break;   //2v
                                       case 9:X1=0;X10=0;X100=1;dac_data0=545;spi_out_b(dac_data0);dac_data1=1950;spi_out_a(dac_data1);break;   //5v
                                       case 10:X1=0;X10=0;X100=1;dac_data0=415;spi_out_b(dac_data0);dac_data1=1958;spi_out_a(dac_data1);break;   //10v
                                       case 11:X1=0;X10=0;X100=1;dac_data0=270;spi_out_b(dac_data0);dac_data1=1953;spi_out_a(dac_data1);break;   //20v
                                        /* case 0:X1=1;X10=0;X100=0;dac_data0=960;spi_out_b(dac_data0);dac_data1=2015;spi_out_a(dac_data1);break;   //5mv/div
                                       case 1:X1=1;X10=0;X100=0;dac_data0=830;spi_out_b(dac_data0);dac_data1=2025;spi_out_a(dac_data1);break;   //10mv
                                       case 2:X1=1;X10=0;X100=0;dac_data0=707;spi_out_b(dac_data0);dac_data1=2035;spi_out_a(dac_data1);break;   //20mv
                                       case 3:X1=1;X10=0;X100=0;dac_data0=545;spi_out_b(dac_data0);dac_data1=2045;spi_out_a(dac_data1);break;   //50mv
                                       case 4:X1=1;X10=0;X100=0;dac_data0=415;spi_out_b(dac_data0);dac_data1=2028;spi_out_a(dac_data1);break;   //100mv
                                       case 5:X1=1;X10=0;X100=0;dac_data0=270;spi_out_b(dac_data0);dac_data1=2025;spi_out_a(dac_data1);break;   //200mv
                                       case 6:X1=0;X10=1;X100=0;dac_data0=545;spi_out_b(dac_data0);dac_data1=2045;spi_out_a(dac_data1);break;   //500mv
                                       case 7:X1=0;X10=1;X100=0;dac_data0=415;spi_out_b(dac_data0);dac_data1=2030;spi_out_a(dac_data1);break;   //1v
                                       case 8:X1=0;X10=1;X100=0;dac_data0=270;spi_out_b(dac_data0);dac_data1=2025;spi_out_a(dac_data1);break;   //2v
                                       case 9:X1=0;X10=0;X100=1;dac_data0=545;spi_out_b(dac_data0);dac_data1=2045;spi_out_a(dac_data1);break;   //5v
                                       case 10:X1=0;X10=0;X100=1;dac_data0=415;spi_out_b(dac_data0);dac_data1=2026;spi_out_a(dac_data1);break;   //10v
                                       case 11:X1=0;X10=0;X100=1;dac_data0=270;spi_out_b(dac_data0);dac_data1=2027;spi_out_a(dac_data1);break;   //20v */
                                        default:break;
                                  }               
                  temp=spidata;
                                 switch(temp)//计算控制数据
                                  {
                                       case 0:CLK_S0=1;DDS_out(1000);spi_out_a(dac_data1-20);break;      //1us   30M
                                       case 1:CLK_S0=0;DDS_out(15000000);spi_out_a(dac_data1-10);break;   //2us15M
                                       case 2:CLK_S0=0;DDS_out(6000000);break;   //5us   6M
                                       case 3:CLK_S0=0;DDS_out(3000000);break;   //10us3M
                                       case 4:CLK_S0=0;DDS_out(1500000);break;   //20us1.5M
                                       case 5:CLK_S0=0;DDS_out(600000);break;   //50us   600K
                                       case 6:CLK_S0=0;DDS_out(300000);break;   //100us300K
                                       case 7:CLK_S0=0;DDS_out(150000);break;   //200us150K
                                       case 8:CLK_S0=0;DDS_out(60000);break;   //500us   60K
                                       case 9:CLK_S0=0;DDS_out(30000);break;   //1ms   30K
                                       case 10:CLK_S0=0;DDS_out(15000);break;   //2ms   15K
                                       case 11:CLK_S0=0;DDS_out(6000);break;   //5ms      6K
                                       case 12:CLK_S0=0;DDS_out(3000);break;   //10ms   3K
                                       case 13:CLK_S0=0;DDS_out(1500);break;   //20ms          1.5K                                                      
                                       
                                        default:break;
                                  }      
               
                  temp=spidata;
                              
                              if(temp!=0)ACDC=0;
                              else    ACDC=1;                              
               j=0;
             }
   }


每句什么含义呀?
实现什么功能呀

hongmark 发表于 2009-9-17 22:17:04

我也研究很久了都没看明白,这几个元件的应用都还没有学好!

xiaomihu 发表于 2009-9-18 07:14:07

是呀

hongmark 发表于 2009-9-24 23:21:54

Fout=M(FMCLK/2 28)
页: [1]
查看完整版本: 哪位高手可以给分析下程序呀