无法编写timer1_ctrl_reg

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
5个帖子/ 0新
最后一篇
Lecarter190.
离线
最后一次露面:5个月2天前
加入:2020-02-27 18:00
无法编写timer1_ctrl_reg

你好,

我正在使用Pro开发板和DA14531Mod子板修改鞍柱示例。

我试图附上一个问题的屏幕镜头,但无法弄清楚如何。我尝试使用setword32(timer1_ctrl_reg,值)写入timer1_ctrl_reg,其中值= 0x126400。拆卸窗口显示指令str r0,[r1,#0x00],其中r0 = 0x00012640 abd r1 = 0x50004000。但内存位置0x50004000不会从0变化。

运行此命令时,内存位置0x50004000仍然为0,并且在启用时无法运行计时器。我还尝试了value = 0x1a640,选择sys clk。

我会感谢您对寄存器写入时未更改的原因。

谢谢,

拉里

设备:
mhv_dialog
离线
最后一次露面:2周2天前
职员
加入:2013-12-06 15:10
嗨拉里,

嗨拉里,

您似乎尝试将32位写入16位宽寄存器(有关详细信息,请参阅数据表的表342)。尝试使用setword16()而不是; o)

直接写入DA14531的寄存器很少是实现任何东西的最佳方式。请查看SDK的Peripheral_examples文件夹,了解用于使用计时器的示例。

你也可以看看你的方式使用app_easy_timer.(强调简单) - 检查“使用SDK6入门”的第9部分教程:http://lpccs-docs.dialog-semiciondiond.com/tutorial_sdk6/index.html.

/ mhv.

Lecarter190.
离线
最后一次露面:5个月2天前
加入:2020-02-27 18:00
谢谢您的答复

感谢您的回复然而,寄存器是17位,SDK_Driver中的FW:Timer1.c使用setword32。我还尝试只用相同的结果写入下游16位。

以下是Timer1.c的权利供您参考。

void timer1_count_config(timer1_count_options_t * count_options,timer1_count_handler_t回调)
{
assert_warning(count_options-> reload_val <= tim1_reload_max);

uint32_t temp =(count_options-> input_clk << 15u)+(count_options-> free_run << 14u)+
(count_options-> irq_mask << 13u)+(count_options-> count_dir << 12U)+
(count_options-> reload_val);

/ *重置当前定时器值。* /
//注意:以下操作序列不得更改!!
setbits32(timer1_ctrl_reg,timer1_clk_en,tim1_clk_on);
setbits32(timer1_ctrl_reg,timer1_use_sys_clk,tim1_clk_src_sys);
setbits32(timer1_ctrl_reg,timer1_count_down_en,count_options-> count_dir);
setbits32(timer1_ctrl_reg,timer1_enable,tim1_off);

/ *写下提供的配置。* /
setword32(timer1_ctrl_reg,temp);

/ *注册提供的回调。* /
timer1_count_register_callback(回调);
}

我不能使用简单的计时器,我需要分辨率小于10毫秒。

隐身_examples文件夹未显示如何使用Timer1,只有我发现的计时器0和2。

我更愿意出于许多原因直接写入寄存器,我会引用您提供直接写入寄存器的SDK_Driver代码。

问题归结为我在原始帖子中引用的Inclation的验收,这是 - 拆卸窗口显示指令str r0,[r1,#0x00],其中r0 = 0x00012640和r1 = 0x50004000。但内存位置0x50004000不会从0变化。

是否有任何铭文保护,或者这将阻止16位或32位写入该内存位置?

拉里

Lecarter190.
离线
最后一次露面:5个月2天前
加入:2020-02-27 18:00
看着图10的

查看数据表的图10,似乎Timer1位于不同的域中,而不是定时器0和2.在鞍柱示例中可以在Timer1关闭时是否有可能?如果是这样,在该示例中将打开它的地方以及如何打开它?

谢谢,

拉里

Lecarter190.
离线
最后一次露面:5个月2天前
加入:2020-02-27 18:00
得到它,需要清除

得到它,需要清除pmu_ctrl_reg中的tim_sleep位

拉里