TI中文支持网
TI专业的中文技术问题搜集分享网站

cc26x2r1,sdk:simplelink_cc13x2_26x2_sdk_3_30_00_03. TI-RTOS Timer module Period参数设置为period in microsecs不能工作

如图使用period in microsecs定时1000ms作为periodtype,debug时定时器不能进入中断服务函数。而使用period in counts计数1000000可以正常进入中断服务函数。这是TI-RTOS的问题吗还是我设置的问题。

/* ================ Types configuration ================ */
var Types = xdc.useModule('xdc.runtime.Types');
var timer0Params = new Timer.Params();
timer0Params.instance.name = "timer0";
timer0Params.period = 1000;
timer0Params.periodType = xdc.module("ti.sysbios.interfaces.ITimer").PeriodType_COUNTS;
Program.global.timer0 = Timer.create(0, "&hwi_ledController", timer0Params);

Susan Yang:

您现在是出现了错误提示还是单纯不能进入中断?使用的是哪个例程呢?

我明天拿板子试一下

使用相关的API会简单一些

http://www.ti.com/lit/ug/spruex3u/spruex3u.pdf 

Susan Yang:

您现在是出现了错误提示还是单纯不能进入中断?使用的是哪个例程呢?

我明天拿板子试一下

使用相关的API会简单一些

http://www.ti.com/lit/ug/spruex3u/spruex3u.pdf 

硬件, 射频和私有技术

Daoming Liu:

回复 Susan Yang:

您好,谢谢您的回复。我这使用的Hello 模板,路径是C:\ti\simplelink_cc13x2_26x2_sdk_3_30_00_03\examples\rtos\CC26X2R1_LAUNCHXL\sysbios\hello

系统配置里面只添加了一个绿色led.TI-RTOS timer module配置如上面的。目的是定时开启和关闭led

具体情况是这样的,设置成period in microsecs时,参数1000(1000ms)如我帖子的配置图,led不会出现期望的闪烁情况,说明失败。如果使用period in counts,参数1000000(具体定时器频率我没仔细研究,大概设置的周期),led会出现明显的闪烁情况,说明当前设置可以成功。

针对第一种不闪烁的情况,我在中断函数加入断点,发现可以进入led可以亮灭,但是取消断点之后,led不会出现闪烁情况。

主要c代码如下:

#include <xdc/std.h>
#include <xdc/runtime/System.h>/* BIOS Module Headers */
#include <ti/sysbios/BIOS.h>#include <ti/drivers/Board.h>#include <ti/drivers/GPIO.h>#include "ti_drivers_config.h"#include <ti/drivers/Timer.h>
#include <ti/drivers/timer/GPTimerCC26XX.h>void hwi_ledController(){GPIO_toggle(CONFIG_LED_0);
}int main()
{Board_init();GPIO_init();System_printf("hello world\n");BIOS_start();return(0);
}

Daoming Liu:

回复 Susan Yang:

您好,您是否使用period in microsecs成功中断?

Susan Yang:

回复 Daoming Liu:

很抱歉,现在才有空弄

我试了一下,两者都是可以闪烁的

附上period in microsecs

Daoming Liu:

回复 Susan Yang:

您好,首先真的感谢您的回复。

我也是使用period in microsecs,并且在中断函数中设置断点的确可以进入中断,但是如果把断点取消,led并不会闪烁。是周期(1000)设置有问题吗?您的也是设置的1000,能否看到闪烁的现象?这个应该是个很简单的问题,但是困扰我很久。仅仅修改一下周期类型就会产生不同结果,这使我很困惑。

Susan Yang:

回复 Daoming Liu:

好的,谢谢反馈。

我今天再测试一下后给您回复

Susan Yang:

回复 Daoming Liu:

请您用 C:\ti\simplelink_cc13x2_26x2_sdk_3_30_00_03\examples\rtos\CC26X2R1_LAUNCHXL\drivers\timerled 试一下

PeriodType_MICROSECS — Period value is in microseconds.微秒为单位
PeriodType_COUNTS — Period value is in counts. 默认一个count代表10微秒

1000的话有可能人眼无法识别闪烁

我用timerled ,params.period = 1000000;很容易识别的

Susan Yang:

回复 Daoming Liu:

物体在快速运动时, 当人眼所看到的影像消失后,人眼仍能继续保留其影像0.1-0.4秒左右的图像,这种现象被称为视觉暂留现象。是人眼具有的一种性质。人眼观看物体时,成像于视网膜上,并由视神经输入人脑,感觉到物体的像。但当物体移去时,视神经对物体的印象不会立即消失,而要延续0.1 -0.4秒的时间,人眼的这种性质被称为“眼睛的视觉暂留”。

您可以尝试一下加大Period的值

赞(0)
未经允许不得转载:TI中文支持网 » cc26x2r1,sdk:simplelink_cc13x2_26x2_sdk_3_30_00_03. TI-RTOS Timer module Period参数设置为period in microsecs不能工作
分享到: 更多 (0)