发布网友
共4个回答
热心网友
据我所知:
一个时钟周期=MCLK 晶振的倒数。如果MCLK是8M,则一个时钟周期为1/8us;
一个机器周期 =一个时钟周期,即430每个动作都能完成一个基本操作;
一个指令周期 = 1~6个机器周期,具体根据具体指令而定。
msp430的平均指令周期为差不多为3个时钟周期。说这些主要也就是告诉你像楼上那样用while语句或者类似的语句是无法实现8M时钟信号的,更谈不上精准。
注意一点,MSP430F1系列的最高外接晶振好像是450K~8M,2系列以后才提高到16M或者更高。下面说正题:
1,首先你要知道MCLK,SMCLK,ACLK的设置。也就是设置主系统时钟,子系统时钟和辅助系统时钟。如果会,那么接着看,如果不会,那么就先学会了。
2,16MHz的晶振接在XT2 上,启动XT2,设置SMCLK的时钟源选择XT2(即选择16MHz的晶振),同时2分频(得到8MHz的频率)。即SMCLK的频率是8MHz。至于MCLK,ACLK,你随意。
3,找到你所用型号的MSP430芯片SMCLK的输出引脚,设置该引脚为功能引脚输出。这样就可以输出SMCLK了,也就是8MHZ的时钟信号,可以供外围电路使用。
热心网友
我也是刚开始学。 430的时钟系统不是有分频器的嘛
热心网友
我看出来你是最近才学的。
晶振是16M
你知道机器周期是多少么?
指令周期呢?
一个机器周期包含12个晶振周期,
大多数指令周期由一个到两个机器周期不等。虽然有极少数单片机可以做到更快。
但430不是这极少数。所以最乐观的情况来看你能产生的是16/12M=1.3M,
以下列代码产生信号(这是我能想到最简洁的)
while(1)
{
P1_0=!P1_0;
}
至少要占2个指令周期,端口才会取反一次。
4个指令周期,才算一个完整的方波。
所以是1.3/4=0.33M。
当然如果你想用中断只怕占用的指令周期数更多,所以不管你怎么算,不会超过500K的!
热心网友
我看出来你是最近才学的。
晶振是16M
你知道机器周期是多少么?
指令周期呢?
一个机器周期包含12个晶振周期,
大多数指令周期由一个到两个机器周期不等。虽然有极少数单片机可以做到更快。
但430不是这极少数