您好!
请指出我可以更改计时器值的位置。
此外、详细说明 这个函数是如何工作的。 从该文档中、我的理解是、 如果计时器未完成其时间设置、那么该函数返回 USS_MESING_CODE_MEASURE_PERIOD_OVERFLOW、如果返回 USS_MESING_CODE_NO_ERROR。 您能否确认这一点。
谢谢。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
请指出我可以更改计时器值的位置。
此外、详细说明 这个函数是如何工作的。 从该文档中、我的理解是、 如果计时器未完成其时间设置、那么该函数返回 USS_MESING_CODE_MEASURE_PERIOD_OVERFLOW、如果返回 USS_MESING_CODE_NO_ERROR。 您能否确认这一点。
谢谢。
您好、以法莲、
正确的是、 如果出现溢出、则返回 USS_message_code_measurement_period_overflow、 如果出现溢出、则返回 USS_message_code_no_error。
建议您查看 ussSwLibMeasurement.c 中函数的定义、同时 CTRL +点击相应函数以查看其他基础函数。 简而言之、该函数会检查计时器是否已溢出、并将返回设置为指示已溢出、或者继续等待计时器完成。 在等待计时器完成时、它会进入低功耗模式。 一旦计时器溢出、它就返回无错误消息。
计时器的周期由为算法给定的参数决定、特别是 UPS0到 UPS1间隙。 您在此处提到的计时器和函数只是为了确保正确实现 UPS0到 UPS1间隙、因此、如果您在达到 UPS0到 UPS1间隙之前完成从开始采集到传输结果的整个处理、 器件将在 LPM 中等待、然后再开始下一次捕获。
尊敬的 Dylan:
我们非常感谢您对模板软件中的以下代码的看法。
while(1){// main measuring loop code = USS_startLowPowerUltrasonicCapture(&gUssSWConfig); checkCode(code, USS_message_code_no_error); code = USS_runAlgorithms(&gUssSWConfig,&algResults); checkCode(code, USS_message_code_valid_results); #if 0 //APPLICATION_ENABLE_UART_DEBUG uartTxUSSResult(APPLICATION_UART_ABSTOF_UPS_DELIM,&algResults.totalTOF_UPS); uartTxUSSResult(APPLICATION_UART_ABSTOF_DNS_DELIM,&algResults.totalTOF_DNS); uartTxUSSResult(APPLICATION_UART_DTOF_DELIM,&algResults.deltaTOF); uartTxUSSResult(APPLICATION_UART_VFR_DELIM,&algResults.volumeFlowRate); #endif // Wait for timer to elapse USS_waitForAppTimerElapse(&gUssSWConfig,USS_low_power_mode_option_low_power_mode_3); }
不过、最后会调用计时器例程、而不进行任何错误检查。 将代码更改为如下所示会有所帮助:
while (USS_waitForAppTimerElapse (&gUssSWConfig、USS_low_power_mode_option_low_power_mode_3)!= USS_message_code_no_error);
谢谢。