我用的是msp430 launchpad (套件里面的低频晶振没有焊上) 的部分程序是
TACCR0 = 20;
TACTL = TASSEL_1+TACLR;
TACCTL0 = CCIE;
TACTL |= MC_1;
_EINT();
我在这选的是TASSEL_1 是AC LK, 但是我的低频晶振并没有啊,,那么这样的话它是自动切换成SMCLK嘛? 还是其他什么啊,,就解答,谢谢
yffy:
不会自动切换的。
user3587240:
回复 yffy:
你好,,不会自动切换的话,,那么此时定时器的时钟源来自哪里,内部DCO 是无法提供ACLK的 注:程序仿真实验了没问题
user3587240:
回复 yffy:
你好,,不会自动切换的话,,那么此时定时器的时钟源来自哪里,内部DCO 是无法提供ACLK的 注:程序仿真实验了没问题
yffy:
回复 user3587240:
让端口延时反转看看频率,焊接上32768晶振再看看。
user3587240:
回复 yffy:
的确仿真时有时LED 闪烁的非常快,有时手一靠近,LED又变化了,,感觉频率不是很稳定,我还不是很清楚没有低频晶振时,他的时钟源来自哪里?还有为什么频率不那么稳定,求解,,谢谢。下面是我的源代码(在CCS中),
#include <MSP430G2553.h>unsigned int i=0,a,flag=0;int main(void) { WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer P1DIR = 0XFF; P1OUT = 0X00; TACCR0 = 20; TACTL = TASSEL_1+TACLR; TACCTL0 = CCIE; TACTL |= MC_1; _EINT(); //P2OUT |= BIT6; while(1);} #pragma vector=TIMER0_A0_VECTOR__interrupt void Timer_A(void){ i=i+1; if(i==3)
{ flag=flag+1; i=0; P1OUT^=BIT6; } if(flag==15) {flag=0;
P1OUT^=BIT0; }}
user3587240:
?
user3587240:
回复 yffy:
老师,你好,,我查到资料 看到了 VLO 时钟,,它是最慢的时钟,,可以提供ACLK,但我还是不太明白没有焊上32768的时候,手接触或靠近,,LED闪烁频率变化是什么原因,求解答,,谢谢
Fuchong Wang:
回复 user3587240:
又是这个问题
也没人给个标准答案
就是能够自动切换到VLO么?
fengtao zhao:
回复 Lina Lian:
如果刚开始DCO是默认的32768HZ,外部晶振是16MHZ,外部晶振如果意外停止的话,用DCO的时候,由于频率不一致导致依赖ACLK和SMCLK的定时器就会出现问题,如果刚开始将DCO设置为16M,外部晶振也为16M,那样即使外部晶振意外停止工作,切换成DCO 的时候也不会导致定时器出错。不知道我说的是不是这个道理? 谢谢!