需要一个带有运行时<1ms的计时器,需要切换端口(p4_3)

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
2个帖子/ 0新
最后一篇
Svenhe.
离线
最后一次露面:3年5个月前
加入:2017-11-16 09:05
需要一个带有运行时<1ms的计时器,需要切换端口(p4_3)

你好,

对于函数,我需要一个带有0.1ms运行时的计时器。如何使用DA14680实现这样的计时器?
我发现的定时器有1毫秒运行时。
当计时器到期时,端口P4_3应从高电平到低电平或其他方式切换并更改。
这个代码应该如何激励p4_3?一个例子会帮助我很多。
我与DA14680开发板合作。

感谢你在期待

Sven.

设备:
mt_dialog.
离线
最后一次露面:5个月2周前
职员
加入:2015-06-08 11:34
嗨Svenhe,

嗨Svenhe,

它取决于您想要的定时器以及当定时器应操作时,68x系列的定时器模块在设备处于睡眠模式时转到关闭状态,这意味着您将在您愿意的同时保持设备唤醒喜欢保持计数。此外,FreERTOS实现的定时器具有2 ms的粒度,但在这种情况下,设备将唤醒,以便为连接到该计时器的回调。关于0.1ms,您不会使用FreeRTOS,但您应该能够使用68倍的计时器。您可以配置允许员说为例如Timer 0,以便生成中断或PWM,您可以在如何设置Timer上找到Peripherals_Demo中的示例。用于设置定时器的函数是timer0_blink_led(),以减少计时器的时段您可以将其设置为快速时钟而不是慢速hw_timer0_set_clock_source(hw_timer0_clk_src_fast)运行;并且还可以使用HW_TIMER0_SET_T0_RELOAD(0x660,0x660)减少计时器的重载值;这将使您降至50%的占空比PWM信号,期间为0.2毫秒。为了将PWM信号的输出与定时器绑定,您必须使用HW_GPIO_SET_PIN_FUNCTION()使用PWM功能,并指定正确的端口,引脚,将引脚设置为输出并分配HW_GPIO_FUNC_PWM0功能。检查下面的片段:

hw_gpio_set_pin_function(hw_gpio_port_1,hw_gpio_pin_0,hw_gpio_mode_output,hw_gpio_func_pwm0);

hw_timer0_init(null);
hw_timer0_set_clock_source(hw_timer0_clk_src_fast);
hw_timer0_set_pwm_mode(hw_timer0_mode_pwm);// hw_timer0_mode_clock.
hw_timer0_set_t0_reload(0x660,0x660);
hw_timer0_set_on_clock_div(false);
hw_timer0_enable();

谢谢mt_dialog.