新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 利用MAXQ7667確定超聲傳感器的諧振頻率和阻尼特性

利用MAXQ7667確定超聲傳感器的諧振頻率和阻尼特性

作者: 時(shí)間:2012-09-14 來(lái)源:網(wǎng)絡(luò) 收藏
/20120914023949976.gif" width=650>

  詳細(xì)圖片(PDF, 325kB)

  圖5. 輸出曲線圖示例

  附錄A. 軟件例程

  傳感器校準(zhǔn)文件

  // This routine measures the transducer damping at the specified frequency (PLLfreq).

  // The system timer is used to measure when the LPF output (LPFD) has dropped to 1/2 the peak value.

  // This is the settling time that will be used later when doing the frequency sweep.

  unsigned damping_half_time (unsigned PLLfreq, unsigned pulse_width)

  {

  unsigned short i;

  unsigned short peak = 0;

  unsigned short half_peak = 0;

  unsigned short temp = 0;

  SCNT_bit.STIME = 0; // Make sure system timer is off.

  STIM = 0; // Clear the system timer.

  SCNT_bit.STDIV = 4; // Set system timer prescale divider to 16 (1μs per cycle).

  PLLF_bit.PLLF = PLLfreq; // Set the PLL frequency.

  BPH = pulse_width; // Pulse width = BPH/(receive frequency * 400) when BDIV = 0xC.

  usWaitTimer2(10000); // Let the PLL settle for 10ms.

  SCNT_bit.STIME = 1; // Start the system timer.

  BPH_bit .BSTT = 1; // Send a burst.

  usWaitTimer2(50); // Wait for LPF to partially settle.

  RunTimer0_us(20); // Start timer # 1 with a reload time of every 20μs.

  for (i = 0; i 200; i++)

  {

  temp = LPFD; // Read the output of the lowpass filter.

  if (temp > 0x2000 temp > peak) {peak = temp;} // Save the peak value if it is greater than 2000.

  if (temp peak/2 half_peak == 0) // If LPFD is less than half the peak value and the half peak time



關(guān)鍵詞: MAXQ7667 超聲傳感器 諧振頻率 阻尼特性

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉