亲爱的对话框,
DA14580有两个定时器,每个定时器都有自己的寄存器位来开关它TIMER0_CTRL_REG [TIM0_CTRL]TRIPLE_PWM_CTRL_REG [TRIPLE_PWM_ENABLE]
还有一个位CLK_PER_REG[TMR_ENABLE],用于切换两个计时器的时钟。让CLK_PER_REG[TMR_ENABLE]始终打开是否可以?会导致明显的电量消耗还是会阻止芯片进入睡眠状态?还有其他副作用吗?
谢谢!
嗨parametrica,
非常感谢您的在线提问。不知道您想要实现什么,但是SDK包含了关于定时器0和定时器2的示例。请看这些例子。它们都位于projects\target_apps\peripheral_examples SDK路径下。关于睡眠模式,请记住,包括计时器在内的所有外围域都是关闭的。系统在睡眠模式下运行,低功率时钟可以是内部的RCX或外部的XTAL32K振荡器。它不会阻止芯片进入睡眠模式。另外,分享更多关于您的实现的输入也会非常有帮助。
在DA14531的情况下,定时器1可以在休眠中保持活跃,因为时钟源可以在系统时钟(sys_clk)和低功率时钟(lp_clk)之间选择。更多信息请参见DA14531 Timer1软件示例。
谢谢,PM_Dialog
嗨PM_Dialog,
谢谢你的支持,很抱歉我的问题很模糊。我试图设想的是CLK_PER_REG[TMR_ENABLE]开关背后的基本原理,因为这两个计时器都有单独的开关。
我有一个程序,使用两个定时器独立在程序的不同部分。因此,我必须跟踪两个计时器的使用情况,如果使用任何计时器/没有使用,则开关CLK_PER_REG[TMR_ENABLE]开/关。我的问题是,我真的需要每次都切换CLK_PER_REG[TMR_ENABLE]吗?或者我可以为了一些代码的简单性而始终保持它的开启状态吗?
谢谢。
对于Timer0,默认选择32khz时钟,因此TIMER0_CTRL_REG [TIM0_CLK_SEL]位域设置为0。通过设置CLK_PER_REG中的TIM0_CLK_SEL位和TMR_ENABLE位域,可以选择其他四个选项。您还可以通过TMR_DIV位域来控制频率。另外还有一个时钟分频器,可以通过定时器控制寄存器TIMER0_CTRL_REG的TIM0_CLK_DIV位激活。对于定时器2,使用系统时钟除以TMR_DIV(1、2、4或8)来计时,可以使用TRIPLE_PWM_CTRL_REG[TRIPLE_PWM_ENABLE]使能。你不需要每次都转换时间。另外,我建议您使用SDK中提供的驱动程序。
嗨parametrica,
非常感谢您的在线提问。不知道您想要实现什么,但是SDK包含了关于定时器0和定时器2的示例。请看这些例子。它们都位于projects\target_apps\peripheral_examples SDK路径下。关于睡眠模式,请记住,包括计时器在内的所有外围域都是关闭的。系统在睡眠模式下运行,低功率时钟可以是内部的RCX或外部的XTAL32K振荡器。它不会阻止芯片进入睡眠模式。另外,分享更多关于您的实现的输入也会非常有帮助。
在DA14531的情况下,定时器1可以在休眠中保持活跃,因为时钟源可以在系统时钟(sys_clk)和低功率时钟(lp_clk)之间选择。更多信息请参见DA14531 Timer1软件示例。
谢谢,PM_Dialog
嗨PM_Dialog,
谢谢你的支持,很抱歉我的问题很模糊。我试图设想的是CLK_PER_REG[TMR_ENABLE]开关背后的基本原理,因为这两个计时器都有单独的开关。
我有一个程序,使用两个定时器独立在程序的不同部分。因此,我必须跟踪两个计时器的使用情况,如果使用任何计时器/没有使用,则开关CLK_PER_REG[TMR_ENABLE]开/关。我的问题是,我真的需要每次都切换CLK_PER_REG[TMR_ENABLE]吗?或者我可以为了一些代码的简单性而始终保持它的开启状态吗?
谢谢。
嗨parametrica,
对于Timer0,默认选择32khz时钟,因此TIMER0_CTRL_REG [TIM0_CLK_SEL]位域设置为0。通过设置CLK_PER_REG中的TIM0_CLK_SEL位和TMR_ENABLE位域,可以选择其他四个选项。您还可以通过TMR_DIV位域来控制频率。另外还有一个时钟分频器,可以通过定时器控制寄存器TIMER0_CTRL_REG的TIM0_CLK_DIV位激活。对于定时器2,使用系统时钟除以TMR_DIV(1、2、4或8)来计时,可以使用TRIPLE_PWM_CTRL_REG[TRIPLE_PWM_ENABLE]使能。你不需要每次都转换时间。另外,我建议您使用SDK中提供的驱动程序。
谢谢,PM_Dialog