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.

[参考译文] 编译器/TMS320F28388D:SYS/BIOS 的定时器2

Guru**** 2529580 points
Other Parts Discussed in Thread: TMS320F28388D, SYSBIOS

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/869410/compiler-tms320f28388d-timer-2-for-sys-bios

器件型号:TMS320F28388D
Thread 中讨论的其他器件: SYSBIOS

工具/软件:TI C/C++编译器

大家好、

根据 TMS320F28388D 的 TRM、缺省情况下、定时器2被用于 SYS/BIOS、如下所示:

是否有必要像下面的代码一样在脚本中显式配置计时器2?

/*
 *创建一个计时器实例以生成周期性中断。
 *
 * 计时器 ID:2 (CPU TIMER2中断(使用 Forti/RTOS))
 *
 * 核心优先级:18.
 *
 *计时器将在 BIOS_start()内启动
 *线程
 *
VAR 计时器= xdc.useModule('ti.sysbios.family.c28.Timer');
var timerParams = new Timer.Params();
timerParams.startMode = Timer.StartMode_Auto;
timerParams.runMode = Timer.RunMode_Continuous;
/*定时器周期为1毫秒(1、000 μ 秒)*/
timerParams.period = 1000;
timerParams.periodType = Timer.PeriodType_microsecs;
timerParams.emulationModeInit.free = 1;
VAR myTimer = Timer.create (2、'&OS_1ms_ISR'、timerParams);

另一个问题是 TMS320F28388D 有3个计时器、即 Timer0/1/2。  SYS/BIOS 如何知道选择哪个定时器作为时基参考?

换言之、我在脚本文件中配置两个计时器 TIMER0/2、如下所示:

VAR 计时器= xdc.useModule('ti.sysbios.family.c28.Timer');
var timerParams = new Timer.Params();
timerParams.startMode = Timer.StartMode_Auto;
timerParams.runMode = Timer.RunMode_Continuous;
/*定时器周期为1/2秒(500、000 μ 秒)*/
timerParams.period = 100;
timerParams.periodType = Timer.PeriodType_microsecs;
VAR myTimer = Timer.create (0、'&OS_100us_ISR'、timerParams);

VAR 计时器= xdc.useModule('ti.sysbios.family.c28.Timer');
var timerParams = new Timer.Params();
timerParams.startMode = Timer.StartMode_Auto;
timerParams.runMode = Timer.RunMode_Continuous;
/*定时器周期为1毫秒(1、000 μ 秒)*/
timerParams.period = 1000;
timerParams.periodType = Timer.PeriodType_microsecs;
timerParams.emulationModeInit.free = 1;
VAR myTimer = Timer.create (2、'&OS_1ms_ISR'、timerParams);

然后选择哪个定时器供 SYS/BIOS 使用?

谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    没有必要为内核显式配置计时器2。

    如果您碰巧使用计时器2、内核仍会尝试使用该计时器、从而导致意外的运行时行为。 内核使用的定时器可在脚本中使用 时钟模块重新配置

    Derrick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    内核使用的默认计时器为"任意"、这意味着它可以使用任意一个空闲计时器。 它首先从较高的计时器 ID 开始(以避免在直接使用计时器而不使用内核的计时器 API 的情况下发生潜在冲突)。 如果您在.cfg 中显式使用计时器0和2 (如上所述)、则内核将使用计时器1 (因为它是唯一可用的计时器)。

    Todd