历史上的今天
今天是:2025年03月03日(星期一)
2020年03月03日 | MSP430F149;二、基本时钟
2020-03-03 来源:eefocus
官方代码
#include int main(void) { WDTCTL = WDTPW +WDTHOLD; // Stop Watchdog Timer DCOCTL = DCO0 + DCO1 + DCO2; // Max DCO BCSCTL1 = RSEL0 + RSEL1 + RSEL2; // XT2on, max RSEL BCSCTL2 |= SELS; // SMCLK = XT2 P5DIR |= 0x70; // P5.6,5,4 outputs P5SEL |= 0x70; // P5.6,5,5 options while(1) { } } 自己写 #include "MSP430x14x.h" int main( void ) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; /*DCO frequency select. */ DCOCTL |=(BIT5+BIT6+BIT7);//=7; BCSCTL1 |= (RSEL0+RSEL1+RSEL2);//DCO MAX; /*ACLK*/ //BCSCTL1 &= ~XTS; //因为默认是0,所以可以不用设置; //BCSCTL1 &= ~(DIVA0+DIVA1); /*SMCLK*/ BCSCTL1 &= ~XT2OFF; //因为默认是1<关闭>,所以置1; BCSCTL2 &= ~SELS; //1:外部时钟;0:DCO BCSCTL2 |= DIVS_1; //2分频 /*MCLK*/ BCSCTL2 |= SELM_0; //选择主系统的时钟源 BCSCTL2 |= DIVM_0; //1分频 /*Oscillator fault interrupt enable*/ __enable_interrupt(); //开启中断; // IE1 |= OFIE; //中断使能;这个不能置一,不知道为啥,置一就有问题,官方提供的例子也没有使OFIE置一,感觉好奇怪 do { IFG1 &= ~OFIFG; //中断标志位清零 /*DELAY*/ __no_operation(); } while(IFG1&OFIFG); //没有振荡器置位则跳出循环 P5DIR |= 0x70; // P5.6,5,4 outputs P5SEL |= 0x70; // P5.6,5,5 options for(;;); }
史海拾趣
|
CPU:PIC16F946 flash:8K字 当我用到资源的75%左右的时候出现了一些莫名其妙的问题,程序总会停在一个地方,像是一个死机,当删除一些调用子程序的代码时就会正常.怀疑是硬件堆栈溢出,可又不知道怎么解决,只是怀疑.后我 ...… 查看全部问答> |
|
在pocketpc环境下程序,调用com组件中的方法,出现错误提示如下 “其他信息: 由于以下错误: 类未注册 ,无法创建 CLSID 为“{AFE1C22D-0A0F-4CAE-87D4-22B52720FBF3}”的 COM 对象。” 如何解决。 … 查看全部问答> |
|
原来用IAR4.42A,后来芯片换成了大容量的STM32F103RET6,烧写出问题,上网查说是IAR版本低,不支持大容量的芯片。 之后就换IAR5.30,改动了__iar_program_start,linker 选项config里改成了$PROJ_DIR$\\STM32F10x_FLASH.icf 可download and deb ...… 查看全部问答> |




