我用的是MSP430F149的单片机,我想通过软件编程实现系统时钟的调用,也就是想在软件中调用系统时钟,请问我要怎么编程呢,谢谢!
是不是说在中断中更改系统时钟?应该跟在主函数中设置一样的啊。
其实我也不太明白,是我们导师要求我这样做的,说让我在程序中增加一个系统时钟的调用,我猜应该是内部时钟吧,我不明白所以就来问了。
具体是,我做的是一个无线数据收发的课题,然后我把数据进行分组,每组给他们编号,按组来收发数据,一组一组的发送接收,然后老师说给数据组编号没有多大意义,让我考虑考虑把MSP430的系统时钟加进去,估计就是想可以观察发送的时间吧,我猜,哎~~,所以具体不知道怎么编程实现,就来请教请教各位强人了。
有人做过类似的吗?急求!!!!
回复 楼主 zhgb1981 的帖子
#include
#include "BoardConfig.h"
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
BoardConfig(0xb8); //关闭数码管、流水灯和电平转换
P3DIR |= BIT4; // P3.4 output
CCTL0 = CCIE; // CCR0 interrupt enabled
CCR0 = 50000;
TACTL = TASSEL_2 + MC_2; // SMCLK, contmode
_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt
}
// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
P3OUT ^= BIT4; // Toggle P3.4
CCR0 += 50000; // Add Offset to CCR0
}
#include
#include "BoardConfig.h"
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
BoardConfig(0xb8);
P3DIR |= BIT4; // P3.4 output
CCTL0 = CCIE; // CCR0 interrupt enabled
CCR0 = 20000;
TACTL = TASSEL_2 + MC_1; // SMCLK, upmode
_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt
}
// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
P3OUT ^= BIT4; // Toggle P3.4
}
#include
#include "BoardConfig.h"
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
BoardConfig(0xb8);
P3DIR |= BIT4; // P3.4 output
TACTL = TASSEL_2 + MC_2 + TAIE; // SMCLK, contmode, interrupt
_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt
}
// Timer_A3 Interrupt Vector (TAIV) handler
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A(void)
{
switch( TAIV )
{
case 2: break; // CCR1 not used
case 4: break; // CCR2 not used
case 10: P3OUT ^= BIT4; // overflow
break;
}
}
#include
#include "BoardConfig.h"
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
BoardConfig(0xb8);
P3DIR |= BIT4; // P3.4 output
TACTL = TASSEL_1 + MC_2 + TAIE; // ACLK, contmode, interrupt
_BIS_SR(LPM3_bits + GIE); // Enter LPM3 w/ interrupt
}
// Timer_A3 Interrupt Vector (TAIV) handler
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A(void)
{
switch( TAIV )
{
case 2: break; // CCR1 not used
case 4: break; // CCR2 not used
case 10: P3OUT ^= BIT4; // overflow
break;
}
}
个人意见,你看看吧
你的开发板跟我是在一家买的
引用: 原帖由 714379286@qq.co 于 2012-4-20 11:42 发表
#include
#include "BoardConfig.h"
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
BoardConfig(0xb8); //关闭数码管、流水灯和电平转换
P3DI ...
、、、、、、、、、、、、、、、、、、、、、、
看 BoardConfig(0xb8)。。。。。https://bbs.eeworld.com.cn/images/smilies/default/biggrin.gif