4316|1

8

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

怎样修改apb的频率 [复制链接]

我用的是cortex m0的lpc1114,发现最短的时钟中断太长了,于是想修改一个apb的clk,但是找不到此寄存器
看到有的手册说是apb的频率是ahb的四分之一,请问一下该如何修改,谢谢了
此帖出自NXP MCU论坛

最新回复

有一段ZLG的代码,你参考一下。 void targetInit (void) {     INT32U i, uiRegVal;     extern void *__GpvVectorTable[];     zyIrqDisable();         SYSMEMREMAP = 0x02;                                                 /*  异常向量表重映射            */     VTOR        = (unsigned long)__GpvVectorTable;     SYSOSCCTRL  = 0x00;                                                 /*  振荡器频率工作范围选择      */     PDRUNCFG &= ~(0x1ul   详情 回复 发表于 2011-2-23 09:22
点赞 关注
 

回复
举报

60

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
有一段ZLG的代码,你参考一下。


void targetInit (void)
{
    INT32U i, uiRegVal;
    extern void *__GpvVectorTable[];
    zyIrqDisable();
   
    SYSMEMREMAP = 0x02;                                                 /*  异常向量表重映射            */
    VTOR        = (unsigned long)__GpvVectorTable;
    SYSOSCCTRL  = 0x00;                                                 /*  振荡器频率工作范围选择      */

    PDRUNCFG &= ~(0x1ul << 5);                                          /*  系统振荡器上电              */
    for ( i = 0; i < 0x100; i++ ) {                                     /*  等待振荡器稳定              */
    }
    SYSPLLCLKSEL = MAIN_CLKSRCSEL_VALUE;                                /*  选择系统振荡器OSC           */
    SYSPLLCLKUEN = 0x00;                                                /*  切换时钟源                  */
    SYSPLLCLKUEN = 0x01;                                                /*  更新时钟源                  */
    while (!(SYSPLLCLKUEN & 0x01)) {                                    /*  等待更新完成                */       
    }
    uiRegVal   = SYSPLLCTRL;
    uiRegVal  &= ~0x1FF;
    SYSPLLCTRL = (uiRegVal | (PLL_PVALUE << 5) | PLL_MVALUE);           /*  预分频:M+1 与 2*P          */
    PDRUNCFG  &= ~(0x01ul << 7);                                        /*  系统MAIN PLL上电            */
    while (!(SYSPLLSTAT & 0x01)){                                       /*  等待锁定                    */
    }
    MAINCLKSEL = 0x03;                                                  /*  选择PLL输出                 */
    MAINCLKUEN = 0x01;                                                  /*  更新MCLK时钟源选择          */
    MAINCLKUEN = 0x00;                                                  /*  翻转更新寄存器              */
    MAINCLKUEN = 0x01;
    while (!(MAINCLKUEN & 0x01)) {                                      /*  等待更新完成                */
    }
    SYSAHBCLKDIV = SYS_AHB_DIV_VALUE;                                   /*  SYStem AHB时钟分频          */
   
    SYSAHBCLKCTRL |= (1ul << 16);                                       /*  使能AHB总线时钟             */
                                                                        /*  否则无法配置ICON            */
    zyIrqEnable();
    zyIfInit();
    return;
}
此帖出自NXP MCU论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表