打印

STR91x时钟切换问题

[复制链接]
1993|4
手机看帖
扫描二维码
随时随地手机跟帖
楼主
whredmaple|  楼主 | 2012-3-20 22:38 | 只看该作者 回帖奖励 |倒序浏览

STR91x时钟切换问题

我的STR91x 在没有任务时候想使用 外部rtc 32.768Khz工作,有任务时候采用PLL,结果发现切换到rtc上,等待5分钟以上就切不回PLL时钟了.
我的方法是 一个外部中断(按键按下) rtc切换到PLL上.不知道大家碰到这个问题没有

使用特权

评论回复
沙发
whredmaple|  楼主 | 2012-3-20 22:40 | 只看该作者
切换时钟目的是想降低功耗,因为str91x采用sleep模式有bug,即使采用了所谓的在sleep之前加N个nop还是不可靠的.

使用特权

评论回复
板凳
whredmaple|  楼主 | 2012-3-20 22:51 | 只看该作者 |阅读模式
STR91x时钟切换问题时钟, 按键我的STR91x 在没有任务时候想使用 外部rtc 32.768Khz工作,有任务时候采用PLL,结果发现切换到rtc上,等待5分钟以上就切不回PLL时钟了.
我的方法是 一个外部中断(按键按下) rtc切换到PLL上.不知道大家碰到这个问题没有
采用切换低速时钟这种方式降低功耗,str91x本身sleep模式有bug,即使采用在sleep前面加N个NOP也不能可靠wakeup.所以希望采用这个办法,但是看起来总是时钟切换不回去,
地板
whredmaple|  楼主 | 2012-3-20 23:00 | 只看该作者
我的时钟切换方法:




SCU_MCLKSourceConfig(SCU_MCLK_OSC);
                                                     // Set the PLL's multipliers and dividers         
    SCU_PLLFactorsConfig(60, BSP_PLL_M, BSP_PLL_P);   //30Mhz clock
    SCU_PLLCmd(ENABLE);                              // Enable the PLL                                 
    SCU_RCLKDivisorConfig(SCU_RCLK_Div1);            // Set RCLK, the CPU clock's main divider         
    SCU_PCLKDivisorConfig(SCU_PCLK_Div1);            // Set APBDIV, the PCLK divider                  
    SCU_FMICLKDivisorConfig(SCU_FMICLK_Div2);

    SCU_MCLKSourceConfig(SCU_MCLK_PLL);              // Select the PLL output as CPU clock

使用特权

评论回复
5
whredmaple|  楼主 | 2012-3-21 18:18 | 只看该作者
这个怎么解决呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

69

帖子

0

粉丝