This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
msp430f5438a可以只用高频时钟吗?
需要如何设置?
我设置了始终没能成功启动晶振
SetVcoreUp(PMMCORE_2);
P5SEL |= BIT2+BIT3;
UCSCTL6 &= ~XT2OFF;
do{
UCSCTL7 &= ~(XT2OFFG+XT1LFOFFG+XT1HFOFFG+DCOFFG);
SFRIFG1 &= ~OFIFG;
}while(SFRIFG1&OFIFG);
程序是我在官方例程的基础上改的。仿真中发现,程序一直在while循环中,不能跳出来.
程序到底是什么地方不对,请大神指出来。
如果你只使用XT2,那扫描XT1和DCO干什么呢?
xueyang zhang 说:msp430f5438a可以只用高频时钟吗?
需要如何设置?
我设置了始终没能成功启动晶振
SetVcoreUp(PMMCORE_2);
P5SEL |= BIT2+BIT3;
UCSCTL6 &= ~XT2OFF;
do{
UCSCTL7 &= ~(XT2OFFG+XT1LFOFFG+XT1HFOFFG+DCOFFG);
SFRIFG1 &= ~OFIFG;
}while(SFRIFG1&OFIFG);
程序是我在官方例程的基础上改的。仿真中发现,程序一直在while循环中,不能跳出来.
程序到底是什么地方不对,请大神指出来。
楼主你好,能否把完整的错误信息发上来?
一般程序是先判断标志位,等待晶振起振,然后再清除。先清除标志位,再判断的时候晶振不一定成功起振.
程序结构这样:
while (SFRIFG1 & OFIFG){ UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG); // 清除三类时钟标志位 // 这里需要清除三种标志位,因为任何一种 // 标志位都会将OFIFG置位 SFRIFG1 &= ~OFIFG; // 清除时钟错误标志位 }
WDTCTL=WDTPW | WDTHOLD;
SetVcoreUp(PMMCORE_2);
P5SEL |= BIT2+BIT3;
UCSCTL6 &= ~XT2OFF;
do{
UCSCTL7 &= ~(XT2OFFG);
SFRIFG1 &= ~OFIFG;
}while(SFRIFG1&OFIFG);
程序我改成这样了,编译没有问题,下载之后仿真看到程序一直在while循环中,