如何将系统时钟设置到外部高频晶体振荡器,430的MCLK默认的是DCO的,如何安全的从DCO切换到外部晶体振荡器,这是一个很重要的步骤,因为经过此步骤,可以极大地提高430的处理能力,DCO在内部,可以为cpu提供强劲稳定的时钟
#include void main( void ) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; volatile unsigned int i; P5DIR |=BIT4;//设置P5.4为输出 P5SEL |=BIT4;//设置片内主系统时钟的输出 //由这段代码设置如何将DCO切换到高频晶体振荡器 BCSCTL1 &=~XT2OFF;//~0x80 do { IFG1 &=~OFIFG;//OFIFG为1表示外部晶体振荡器失效 for(i = 0xff;i>0;i--);//IFG1是Interrupt Flag 1 } while((IFG1 & OFIFG));//表示振荡器已经起振 BCSCTL2 |= SELM_2;//#define SELM_2 (0x80) /* MCLK Source Select 2: XT2CLK/LFXTCLK */ while(1); } 低功耗模式的设置: msp430内部有4种低功耗模式,在进入低功耗模式的时候,cpu停止,一般是由外部事件的响应才能唤醒cpu 由于IAR软件比较给力,所以进入低功耗模式的常用格式 比如: 进入低功耗模式2:LPM2; 退出低功耗模式2:LPM2_EXIT; 开启外部中断:_EINT(): 关闭外部中断:_DINIT(); 430外部中断的模式 #include main( void ) { BCSCTL1 |=DIVA_2;//(0x20) /* ACLK Divider 2: /4 */ WDTCTL = WDT_ADLY_1000;//直接将看门狗定时器变成定时器,定时时间是1000毫秒 IE1 =WDTIE;//打开定时器中断 P2DIR |= BIT3; while(1) { unsigned int i; _BIS_SR(LPM3_bits +GIE);//进入低功耗模式3,这种时候,cpu停止工作,同时打开总的中断 //_BIS_SR是一个本增函数, //_BIS_SR()是一个本增函数,通过本函数可以对寄存器进行直接的操作 //这句话等价于_EINT(); // LPM3; P2OUT &=~BIT3;//相当于把第五位输出0 for(i = 180000;i>0;i--);//延时 P2OUT |= BIT3;//p3.5输出1 } } #pragma vector =WDT_VECTOR __interrupt void watchdag_timer(void) { //__BIC_SR_IRQ(LPM3_bits);//从中断中,将低功耗模式退出,将cpu从睡眠模式唤醒 LPM3_EXIT;//退出低功耗模式 }
上一篇:MSP430_SPI_Master_Read_Write
下一篇:MSP430FR6989功能介绍
推荐阅读最新更新时间:2024-10-31 21:07
设计资源 培训 开发板 精华推荐
- 使用 MaxLinear, Inc 的 SPX385AN-1.2/TR 的参考设计
- LT1021DCN8-5 具有升压输出电流且无电流限制的电压基准的典型应用
- LT1185CT 低压差稳压器作为具有故障保护功能的逻辑控制 3A 低侧开关的典型应用电路
- A_32_V10基于IPS2电机换向传感器的设计
- LT1021CCN8-5 精密电压基准的典型应用
- Temperatur Humidity Sensor SHT21
- #第七届立创电赛#小型功率分析仪
- 使用 ON Semiconductor 的 FAN5614 的参考设计
- 【实测成功红】基于TPS63802的微型自动升降压模块
- ST1L05APU33R 极低静态 BiCMOS 稳压器的典型 ST1L05A 应用原理图