#include "msp430.h"
/****************************************************************************
* 名 称:ClkInit
* 功 能:时钟系统初始化 MCLK为8MHz,SMCLK为8MHz ACLK为32768HZ 通过中断实现
* 入口参数:无
* 出口参数:无
****************************************************************************/
void ClkInit()
{
BCSCTL3 |= LFXT1S_2; // 设置LFXT1为VLOCLK
BCSCTL1 &= ~XT2OFF; // 使能XT2高频晶振
BCSCTL3 |= XT2S_2; // 选择3~16MHz晶振范围
IE1 |= OFIE; // 使能osc fault中断
}
int main( void )
{
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
ClkInit();
CCTL0 = CCIE; //打开定时器中断
CCR0 = 60000; //设置计数值
TACTL = TASSEL_2 + ID_3 + MC_1; //定时器A的时钟源选择SMCLK,增计数模式
P2DIR = 0xff; //设置P2口方向为输出
P2OUT = 0xff;
_EINT(); //使能全局中断
LPM0; //CPU进入LPM0模式
}
/*******************************************
函数名称:NMI_ISR
功 能:非可屏蔽中断的中断服务函数(打开高频时钟)
参 数:无
返回值 :无
********************************************/
#pragma vector=NMI_VECTOR
__interrupt void NMI_ISR(void)
{
volatile unsigned int i;
//P2OUT |= 0x01; // P2.0 = set
BCSCTL2 &= ~SELM_3; // 确保 MCLK 来自 DCO
do
{
IFG1 &= ~OFIFG; // 清除中断错误标志OSCFault flag
for (i = 0xFF; i > 0; i--); // 等待中断错误标志置位
}
while (IFG1 & OFIFG); // 判断中断错误标志
BCSCTL2 |= SELM_2 + SELS; // 选择MCLK、SMCLK为XT2 HF XTAL高频晶振
//for (i=0; i>20000; i--); // Delay for LED on inside ISR
//P2OUT &= ~0x01; // P2.0 = reset
}
/*******************************************
函数名称:Timer_A
功 能:定时器A的中断服务函数
参 数:无
返回值 :无
********************************************/
#pragma vector = TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
P2OUT ^= 0xff; //P2口输出取反
}
sd.rar_msp430f2618
版权申诉
30 浏览量
2022-09-20
20:47:45
上传
评论
收藏 1KB RAR 举报
小贝德罗
- 粉丝: 69
- 资源: 1万+
最新资源
- 三菱PLC(Mitsubishi)通讯协议的C#实现,支持FX、Q系列的ASCII-3E、BIN-3E、FX串口格式
- 五一建模20242024
- rainy-day.jpg
- IMG_20240501_171218.jpg
- Swift-内购封装swift版本
- 经典CNN网络之ResNet 图像分类网络实战项目:7种小麦叶片病害分类(迁移学习)
- Java毕设之ssm010基于ssm的新能源汽车在线租赁管理系统+vue.rar
- Java毕设之ssm009毕业生就业信息统计系统+vue.rar
- Java毕设之ssm008医院门诊挂号系统+jsp.rar
- Java毕设之ssm007亚盛汽车配件销售业绩管理统+jsp.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈