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