⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 简易频谱分析仪
💻 C
📖 第 1 页 / 共 2 页
字号:
}
		
void Read_Wave_Dat(alt_u16 *buff)		//读取ADC数据
{
	alt_u16 i;
	for(i=1; i<=WAVE_DOTS; i++)
	{
			IOWR_ALTERA_AVALON_PIO_DATA(IRAM_ADDR_BASE, i);
      IOWR_ALTERA_AVALON_PIO_DATA(IRAM_ADDR_BASE, i);
      *buff++ = IORD_ALTERA_AVALON_PIO_DATA(IRAM_DAT_BASE) + 0x20;
	}
}

void Display_Wave(alt_u16 xp, alt_u16 yp, alt_u16 *wave, alt_u16 color)  //显示波形
{
   alt_u16 i,k;
   alt_u16 m, n;
   OldWaveDat[0] = m = *wave++;
   for(i=1; i<GD_W; i++)
   {
      OldWaveDat[i] = n = *wave++;
      for(k=m;k<=n;k++)
        Draw_Pixel(xp+i, yp+GD_H-k, color);
      for(k=n;k<=m;k++)
        Draw_Pixel(xp+i, yp+GD_H-k, color);                    
      m = n;
   }   
}

void FillBlank(alt_u8 *buff)
{
  alt_u8 i=0;
  while(buff[i] <= '0')
  {
    buff[i++] = ' ';
    if(buff[i] > '0')
      break;
  }
}

//----频率值
void Cal_Disp_Freq(alt_u16 *buff)
{
  alt_u16 i;
  alt_u32 freq_rst;
  alt_u16 temp;
  alt_u8 freq[8] = {"    KHz"};
  alt_u8 unkown[8] = {"???    "};
  temp = TrigerTable[Triger_Level] + 0x20;
  for(i=10; i<WAVE_DOTS; i++)
  {
    if( buff[i-2] < temp && buff[i] > temp)
      break;
  }
  if(i < WAVE_DOTS)
  {
    freq_rst = Freq_Table[Sample_Index] * 40 / i;
    if(freq_rst < 10000)  //<10KHz
    {
      temp = 1000;
      for(i=0; i<4; i++)
      {
        freq[i+1] = freq_rst/temp + '0';
        freq_rst %= temp;
        temp /= 10;
      }
    }
    else if(freq_rst < 100000)  //<100KHz)
    {
      freq_rst /= 100;
      temp = 100;
      for(i=0; i<3; i++)
      {
        freq[i] = freq_rst/temp + '0';
        freq_rst %= temp;
        temp /= 10;
      }
      freq[3] = freq[2];
      freq[2] = '.';
    }
    else    //>=100KHz
    {
      freq_rst /= 1000;
      temp = 100;
      for(i=0; i<3; i++)
      {
        freq[i+1] = freq_rst/temp + '0';
        freq_rst %= temp;
        temp /= 10;
      }
    }
    FillBlank(freq);
    DisplayAnyString(freq, PARAM_X + 64, PARAM_Y + 8, COLOR_PURPLE, COLOR_CYAN);
  }
  else
    DisplayAnyString(unkown, PARAM_X + 64, PARAM_Y + 8, COLOR_PURPLE, COLOR_CYAN);
}

//----峰峰值
void Cal_Disp_Vpp(alt_u16 *buff)
{
  alt_u16 i;
  alt_u16 max_volt, min_volt;
  alt_u16 temp, volt_rst;
  alt_u8 volt[8] = {"x.xx伏"};
  max_volt = 0;
  min_volt = 0xffff;
  for(i=0; i<WAVE_DOTS; i++)
  {
    if(buff[i] <  min_volt)
      min_volt = buff[i];
    if(buff[i] > max_volt)
      max_volt = buff[i];
  }
  volt_rst = (max_volt - min_volt) * 37 / 40;
  temp = 100;
  for(i=0; i<3; i++)
  {
    volt[i+1] = volt_rst/temp + '0';
    volt_rst %= temp;
    temp /= 10;
  }
  volt[0] = volt[1];
  volt[1] = '.';
  DisplayAnyString(volt, PARAM_X + 264, PARAM_Y + 8, COLOR_PURPLE, COLOR_CYAN);
}

/************************************************************/
alt_u8 mLogo[128*72] = {
/*--  宽度x高度=128x72  --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xF0,0x00,0x00,0x00,0x3F,0xFE,0x00,0x00,
0x00,0x7F,0xFF,0xFF,0xC0,0x00,0x07,0xFF,0xFC,0x00,0x00,0x01,0xFF,0xFF,0x80,0x00,
0x00,0x7F,0xFF,0xFF,0xF0,0x00,0x1F,0xFF,0xFE,0x00,0x00,0x07,0xFF,0xFF,0xE0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x7F,0xFF,0xFF,0xFC,0x00,0x3F,0xFF,0xFF,0x80,0x00,0x1F,0xFF,0xFF,0xF8,0x00,
0x00,0x7F,0xFF,0xFF,0xFE,0x00,0x7F,0xFF,0xFF,0x80,0x00,0x3F,0xFF,0xFF,0xFC,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x7F,0xFF,0xFF,0xFF,0x00,0x7F,0xE1,0xFF,0x80,0x00,0x7F,0xFF,0xFF,0xFE,0x00,
0x00,0x7F,0xFF,0xFF,0xFF,0x00,0x7F,0xC0,0xFF,0x80,0x00,0xFF,0xFE,0x7F,0xFF,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x7F,0xF0,0x0F,0xFF,0x00,0x7F,0xE1,0xFF,0x80,0x00,0xFF,0xF0,0x0F,0xFF,0x00,
0x00,0x7F,0xF0,0x07,0xFF,0x00,0x7F,0xF7,0xFF,0x00,0x01,0xFF,0xE0,0x0F,0xFE,0x00,
0x00,0x7F,0xF0,0x0F,0xFF,0x00,0x3F,0xFF,0xFE,0x00,0x01,0xFF,0xE0,0x0F,0xC0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x7F,0xFF,0xFF,0xFF,0x00,0x1F,0xFF,0xF8,0x00,0x01,0xFF,0xE0,0x00,0x00,0x00,
0x00,0x7F,0xFF,0xFF,0xFE,0x00,0x0F,0xFF,0xE0,0x00,0x01,0xFF,0xC0,0x00,0x00,0x00,
0x00,0x7F,0xFF,0xFF,0xFE,0x00,0x3F,0xFF,0x80,0x00,0x01,0xFF,0xC0,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x7F,0xFF,0xFF,0xF8,0x01,0xFF,0xFF,0xE3,0xF0,0x01,0xFF,0xC0,0x00,0x00,0x00,
0x00,0x7F,0xFF,0xFF,0xF0,0x03,0xFF,0xFF,0xF3,0xFF,0x01,0xFF,0xC0,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x7F,0xFF,0xFF,0xE0,0x07,0xFF,0x3F,0xFF,0xFF,0x01,0xFF,0xE0,0x07,0x00,0x00,
0x00,0x7F,0xF3,0xFF,0xF0,0x0F,0xFE,0x1F,0xFF,0xFE,0x01,0xFF,0xE0,0x0F,0xF0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x7F,0xF0,0x7F,0xFC,0x0F,0xFC,0x0F,0xFF,0xFC,0x01,0xFF,0xE0,0x0F,0xFF,0x00,
0x00,0x7F,0xF0,0x3F,0xFE,0x0F,0xFC,0x07,0xFF,0xFC,0x00,0xFF,0xF0,0x1F,0xFF,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x7F,0xF0,0x1F,0xFF,0x0F,0xFE,0x00,0xFF,0xFE,0x00,0x7F,0xFC,0xFF,0xFE,0x00,
0x00,0x7F,0xF0,0x1F,0xFF,0x0F,0xFF,0x01,0xFF,0xFF,0x80,0x7F,0xFF,0xFF,0xFE,0x00,
0x00,0x7F,0xF0,0x0F,0xFF,0x8F,0xFF,0xCF,0xFF,0xFF,0xC0,0x3F,0xFF,0xFF,0xFC,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x7F,0xF0,0x07,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0xC0,0x1F,0xFF,0xFF,0xF8,0x00,
0x00,0x7F,0xF0,0x07,0xFF,0xC3,0xFF,0xFF,0xFF,0xFF,0x80,0x0F,0xFF,0xFF,0xF0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x7F,0xF0,0x03,0xFF,0xE0,0x7F,0xFF,0xF0,0x7E,0x00,0x01,0xFF,0xFF,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0x80,0x1C,0x00,0x00,0x3F,0xFE,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,
0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,
0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,
0x00,0x7F,0xFE,0x00,0x00,0x7C,0x84,0x00,0x00,0x7F,0x88,0x00,0x00,0x0C,0x02,0x00,
0x00,0x01,0x00,0x00,0x00,0x10,0x44,0x00,0x00,0x00,0x3E,0x00,0x00,0x12,0x12,0x00,
0x00,0x02,0x00,0x00,0x00,0x10,0x24,0x00,0x00,0x3F,0x2A,0x00,0x00,0x11,0x12,0x00,
0x00,0x1F,0xF8,0x00,0x00,0x10,0x14,0x00,0x00,0x41,0x2A,0x00,0x00,0x20,0x92,0x00,
0x00,0x20,0x04,0x00,0x00,0x7F,0x0C,0x00,0x00,0x3F,0x2A,0x00,0x00,0xDE,0x52,0x00,
0x00,0x20,0x04,0x00,0x00,0x18,0x84,0x00,0x00,0x00,0x2A,0x00,0x00,0x21,0x12,0x00,
0x00,0x20,0x04,0x00,0x00,0x14,0x44,0x00,0x00,0x7F,0x2A,0x00,0x00,0x21,0x12,0x00,
0x00,0x20,0x04,0x00,0x00,0x34,0x24,0x00,0x00,0x52,0xAA,0x00,0x00,0x21,0x12,0x00,
0x00,0x3F,0xFC,0x00,0x00,0x32,0x04,0x00,0x00,0x54,0xAA,0x00,0x00,0x21,0x12,0x00,
0x00,0x20,0x04,0x00,0x00,0x50,0x0E,0x00,0x00,0x5E,0x9C,0x00,0x00,0x27,0x12,0x00,
0x00,0x20,0x04,0x00,0x00,0x13,0xF4,0x00,0x00,0x68,0x8C,0x00,0x00,0x20,0x52,0x00,
0x00,0x20,0x04,0x00,0x00,0x10,0x04,0x00,0x00,0x48,0x8A,0x00,0x00,0x20,0x42,0x00,
0x00,0x20,0x04,0x00,0x00,0x10,0x04,0x00,0x00,0x48,0xBE,0x00,0x00,0x20,0x42,0x00,
0x00,0x3F,0xFC,0x00,0x00,0x10,0x04,0x00,0x00,0x43,0xC1,0x00,0x00,0x1F,0x9C,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -