基于MSP430系统时钟低功耗模式的设置

如何将系统时钟设置到外部高频晶体振荡器,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;//退出低功耗模式
}

ETSI通过可重构的智能表面重新构想边缘网络
华为正在加快速度学习和进步 超越三星或许不会用很长时间
如何实现步进电机中的速度调节控制设计
COB光源使用注意事项
利用PLC解决车辆分散驱动的同步控制问题
基于MSP430系统时钟低功耗模式的设置
桁架机器人提高生产效率
新唐科技N79E823单片机简介
特朗普宣布加紧对华为的限制,已将38家华为子公司拉入黑名单
苹果已经探索出一种可以生产出更多与可穿戴设备互动的免提方式
单片机有哪些类型的中断 单片机原理及应用
智能家电行业的定义和分类
不断发展的ICT技术助力新能源汽车产业链加速变革
人工智能潮流下一个席卷的就是智能手机市场了
鸿蒙页面示例
区块链社交系统开发
机器学习的定义、分类及应用
苹果在AR眼镜和VR耳机中实现完美图像
PCB设计中介电损耗角正切高速设计作用
基于MC68HC908QL4芯片和LIN总线实现车灯诊断系统的应用方案