请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:TMS320F28.0025万C 您好,
我想在代码中以纳秒实现计时器。 我已经在微秒内实现了计时器。 根据C2000软件中提供的计时器示例,我们只能在给定函数(最后参数)中将最小计时器设置为1微秒。
configCPUTimer (CPUTIME1_BASE,DEVICE_SYSCLK_FREQ,1);
我正在使用内部振荡器时钟进行此操作,频率为10MHz。
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.
您好,
我想在代码中以纳秒实现计时器。 我已经在微秒内实现了计时器。 根据C2000软件中提供的计时器示例,我们只能在给定函数(最后参数)中将最小计时器设置为1微秒。
configCPUTimer (CPUTIME1_BASE,DEVICE_SYSCLK_FREQ,1);
我正在使用内部振荡器时钟进行此操作,频率为10MHz。
您好,Raj,
如果您要将计时器配置为纳秒,则我会更改configCPUTimer功能本身。
这是以下函数的开始:
void
configCPUTimer(uint32_t cpuTimer, float freq, float period)
{
uint32_t temp;
//
// Initialize timer period:
//
temp = (uint32_t)(freq / 1000000 * period);
CPUTimer_setPeriod(cpuTimer, temp);
此函数中的键是CPUTimer_setPeriod()。 此功能用于配置计时器的时间段。 传入的值应以时钟周期数为单位。
温度变量计算是根据输入频率和所需的计时器周期(以微秒为单位)计算周期值(以时钟周期为单位)。
假设您需要一个50纳秒的计时器,而SYSCLK是100MHz (计时器的输入时钟)。
1/100MHz =10纳秒(表示一个时钟周期为10纳秒)。 由于在本例中,计时器的计算时间为50纳秒,因此您只需计算5个时钟周期。
因此,您应该只能调用CPUTimer_setPeriod(cpuTimer, 5)以及configCPUTimer功能中的其余计时器配置。
此致,
Marlyn