您好,我想问一下c6670下面timer的创建问题。
我在ccs5.2里面调用ti.sysbios.hal.timer中的Timer_create函数创建timer时发现,无法创建两个timer。在成功创建第一个timer后,如果我尝试创建第二个timer,会打出这样的提示ti.sysbios.family.c64p.Hwi: line 159: E_alreadyDefined: Hwi already defined: intr# 14,请问这个是说只能创建一个timer么?
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.
您好,我想问一下c6670下面timer的创建问题。
我在ccs5.2里面调用ti.sysbios.hal.timer中的Timer_create函数创建timer时发现,无法创建两个timer。在成功创建第一个timer后,如果我尝试创建第二个timer,会打出这样的提示ti.sysbios.family.c64p.Hwi: line 159: E_alreadyDefined: Hwi already defined: intr# 14,请问这个是说只能创建一个timer么?
你需要在创建timer前调用Timer_getNumTimers()函数,去check当前正在使用的timer和可供使用timer的总数,然后更换timer ID 如下代码所示,配置成不同的timer 外设,就可以避免冲突
var timer = xdc.useModule('ti.sysbios.hal.Timer');
var timerParams = new Timer.Params();
timerParams.period = 10;
timerParams.periodType = Timer.PeriodType_MICROSECS;
timerParams.arg = 1;
timer.create(1, '&myIsr', timerParams);
非常感谢您的答复,可是我还是有点不能理解的地方,我对静态配置不是很清楚,但是我在动态创建timer的时候,对于TimerId这个参数,我发现自己只能使用使用Timer_ANY,如果使用一个数值(我用Timer_getStatus得到的处于可用状态的timerid为8-15),比如说8,可以成功的创建一个timer(返回了一个非空的timer句柄),但是这个timer不会计数(我先调用了Timer_start函数开始计数,然后再调用Timer_getCount取数,一直都是0),而且如果我接着再创建一个timer,令timerid为9,就会出现我上次提问所说的问题,Hwi is already defined。非常期待您的解答。谢谢。