8962的系统时钟设置问题(不用库,直接操作寄存器)

2019-03-24 15:59发布

代码:
#include <lm3s8962.h>


void Delay(void)
{
    unsigned long Tmp = 0xFFFFFF;
   
    while(--Tmp);   
}

int main(void)
{
    unsigned long RCC;
    unsigned long RCC2;

    RCC = SYSCTL_RCC_R;
    RCC2 = SYSCTL_RCC2_R;

    RCC |= SYSCTL_RCC_BYPASS;
    RCC &= ~SYSCTL_RCC_USESYSDIV;
    RCC2 |= SYSCTL_RCC2_BYPASS2;

    SYSCTL_RCC_R = RCC;
    SYSCTL_RCC2_R = RCC2;

    RCC &= ~SYSCTL_RCC_MOSCDIS;
    RCC |= SYSCTL_RCC_IOSCDIS;
    SYSCTL_RCC_R = RCC;

    Delay();

    RCC |= SYSCTL_RCC_XTAL_8MHZ;
    RCC |= SYSCTL_RCC_OSCSRC_MAIN;
    RCC &= ~SYSCTL_RCC_PWRDN;
    SYSCTL_RCC_R = RCC;

    Delay();

    RCC &= ~SYSCTL_RCC_SYSDIV_16;
    RCC |= SYSCTL_RCC_SYSDIV_4;
    RCC |= SYSCTL_RCC_USESYSDIV;
    SYSCTL_RCC_R = RCC;     //--------------运行了这句KEIL出错

    while((SYSCTL_RIS_R & SYSCTL_RIS_PLLLRIS) == 0);

    RCC &= ~SYSCTL_RCC_BYPASS;
    RCC = SYSCTL_RCC_R;
    SYSCTL_RCC_R = RCC;

    while(1);
}

首先问题是这样:
无论用KEIL3或者KEIL4,运行完SYSCTL_RCC_R = RCC;  就会马上出错
另外,将Delay延长点也一样出错的。

板是8962 EV KIT,用8M主晶振,想倍频到50M
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
jkhu
1楼-- · 2019-03-24 19:24
 精彩回答 2  元偷偷看……
David_Lee
2楼-- · 2019-03-24 23:04
< :TI_MSP430_内容页_SA7 -->

原帖由 jkhu 于 2011-7-25 16:46 发表 可以参考一下面的初始化程序。 // // Enable the GPIO port that is used for the on-board LED. // SYSCTL_RCGC2_R = SYSCTL_RCGC2_GPIOF; // // Do a dummy read to insert a few ...

 

哦喔,传闻的延时处理。

看来还是用库方便点。

一周热门 更多>

相关问题

    相关文章