io口翻转,频率

2019-03-24 16:08发布

我把mclk设置成8M外部晶振,没有分频,对io求反应该是单周期指令.测p1频率应该是4Mhz才对,而我用示波器测P1为667khz
#include"msp430x14x.h"
void main()
{
  WDTCTL=WDTPW+WDTHOLD;
  P1DIR=0XFF;
  P5DIR=0X70;
  P5SEL=0X70;
  unsigned int iq0;
  BCSCTL1&=~XT2OFF;          //打开XT2振荡器
   do
   {
   IFG1 &= ~OFIFG;     // 清除振荡器失效标志
   for (iq0 = 0xFF; iq0 > 0; iq0--);  // 延时,等待XT2起振
  }s
  while ((IFG1 & OFIFG) != 0);    // 判断XT2是否起振
  BCSCTL2 =SELM_2+SELS;     //选择MCLK、SMCLK为XT2
  while(1)
  {
    P1OUT^=0XFF;
  }

} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
leang521
2019-03-24 21:15
< :TI_MSP430_内容页_SA7 --> C语言编译时会根据不同条件优化代码,但大部分情况下还是达不到汇编的高效的,你这个高效的代码应该是反转,跳转两条指令,我不知道反转跳转两条指令的周期是多少。所以无法定实际输出频率。

一周热门 更多>

相关问题

    相关文章