您好!
我使用的是 am243x-EVM。
我使用"syscfg"为31.25us 设置计时器
是有效设置吗?
在回调内部、我将切换 LED26、并在 LED26上连接一个示波器来测量周期。
我将得到一个方波、其显示每~100ms 切换一次、而不是预期的32usec。
它是否是一种有效的 测量方法?
如何正确设置定时器并正确测量?
谢谢。
Eli
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.
您好!
我使用的是 am243x-EVM。
我使用"syscfg"为31.25us 设置计时器
是有效设置吗?
在回调内部、我将切换 LED26、并在 LED26上连接一个示波器来测量周期。
我将得到一个方波、其显示每~100ms 切换一次、而不是预期的32usec。
它是否是一种有效的 测量方法?
如何正确设置定时器并正确测量?
谢谢。
Eli
尊敬的 Eli:
您将需要在设置后启动计时器:
我在空项目中使用以下计时器 ISR 对上述设置进行了测试。 让它运行10s、然后检查 gTimerCounter 值。 gTimerCounter*31.25/1000000约为10。
uint32_t gTimerCounter = 0;
空 myTimerISR (空)
{
gTimerCounter++;
}
void empty_main (void *args)
{
/*打开驱动程序以打开控制台的 UART 驱动程序*/
drivers_open();
Board_driversOpen();
while (1)
{
}
DebugP_log ("所有测试均已通过!!\r\n ");
Board_driversClose ();
drivers_close();
}
此致、
明
尊敬的 Ming:
我将通过 TimerP_start (gTimerBaseAddr [CONFIG_TIMER0])启动计时器;
然后、它进入我编写的回调。
bool b_leed_toggle=false;
空 TimerTick (空)
{
debug_leed_on (b_leed_toggle);
b_LED_TOGGLE =!b_LED_TOGGLE;
}
示波器显示正在切换~100ms。 非32us
如果我这样做
uint32_t counter=0;
空 TimerTick (空)
{
计数器++;
}
如果我在10秒后进行分频、我得到~1000
我怀疑计时器在100ms 时工作正常、
我已经尝试使用优先级0 -相同的时间!
我正在后台使用 FreeRTOS、它是否会影响计时器节拍?
请建议:
谢谢。
此致、
Eli
尊敬的 Eli:
根据您的测试结果、10秒的计数器为~1000。 节拍周期设置为10000us (10ms)、但新计时器实例的默认节拍周期为1000us (1ms)。 这里出了问题。
FreeRTOS 仅使用 TIMER8。 它不应影响 DMTimer0。
您使用的是哪个版本的 MCU+ SDK? 我使用的是 AM243x MCU+ SDK 09.01.00.41
此致、
明