你好,
我使用timer2作为PWM在压电上播放声音。我的整个应用程序工作良好,如果我只在我的设备上flash应用程序。但如果我把它和bootloader结合,然后在设备上flash它,所有功能都工作得很好,在timer2上运行的escape piezo。
我错过了什么?
我还看到,如果我使用timer2和timer0,那么所有事情都工作正常。但是我删除了timer0,然后timer2也停止工作。目前,我使用的是app_easy_timer()函数而不是timer0,这就是产生问题的原因。
好吧,我找到了。
实际上,在初始化timer0时,我调用了下面的函数。set_tmr_enable (CLK_PER_REG_TMR_ENABLED);set_tmr_div (CLK_PER_REG_TMR_DIV_8);
因此,它启用了timer0和timer2时钟。但是由于我已经删除了timer0初始化代码,timer2时钟源也处于默认(禁用)状态。
现在,我在timer2初始化时添加上述函数,它现在工作良好。
但是,如果我不集成二级引导加载程序,那么timer2就可以完美地工作。如果我集成了二级引导加载程序,那么必须完成timer2时钟初始化。
嗨Ankit,
您看到的区别是当设备通过JTAG或通过辅助引导加载程序(使用AN_B_001头或多个映像配置)或主引导加载程序闪烁时?最可能的问题与设备在运行实际的fw之前做了什么有关,以及在实际的fw运行之前CLK_PER_REG的状态是什么,所以引导加载程序正在执行什么(主引导加载程序和辅助引导加载程序都使用timer0来测量时间),因为直接从JTAG下载图像和执行引导加载程序是完全不同的。无论如何,在实际使用计时器之前,您应该确保设备上的计时器是启用的。
由于MT_dialog
我还看到,如果我使用timer2和timer0,那么所有事情都工作正常。但是我删除了timer0,然后timer2也停止工作。
目前,我使用的是app_easy_timer()函数而不是timer0,这就是产生问题的原因。
好吧,我找到了。
实际上,在初始化timer0时,我调用了下面的函数。
set_tmr_enable (CLK_PER_REG_TMR_ENABLED);
set_tmr_div (CLK_PER_REG_TMR_DIV_8);
因此,它启用了timer0和timer2时钟。但是由于我已经删除了timer0初始化代码,timer2时钟源也处于默认(禁用)状态。
现在,我在timer2初始化时添加上述函数,它现在工作良好。
但是,如果我不集成二级引导加载程序,那么timer2就可以完美地工作。如果我集成了二级引导加载程序,那么必须完成timer2时钟初始化。
嗨Ankit,
您看到的区别是当设备通过JTAG或通过辅助引导加载程序(使用AN_B_001头或多个映像配置)或主引导加载程序闪烁时?最可能的问题与设备在运行实际的fw之前做了什么有关,以及在实际的fw运行之前CLK_PER_REG的状态是什么,所以引导加载程序正在执行什么(主引导加载程序和辅助引导加载程序都使用timer0来测量时间),因为直接从JTAG下载图像和执行引导加载程序是完全不同的。无论如何,在实际使用计时器之前,您应该确保设备上的计时器是启用的。
由于MT_dialog