程序匠人--MSP430学习笔记
主程序之后我要讲讲中断函数,中断是你做单片机任务中不可缺少的部分,也可以说是灵魂了(夸张吗)。
举个定时中断的例子:
当然,还有其他的定时,和多种中断,各系列芯片的中断向量个数也不同。
这就是简单的整体程序框架,写得简单啦,还忘谅解,明天详细了解一下各外围模块的初始化和功能,
整体的程序设计结构,包括了所有外围模块及内部时钟,中断,定时的初始化。具体情况大家可以根据自己的需要添加或者减少,记住,模块化设计时最有力的武器。
这可是个人总结的经典阿,谢谢支持。因为经常使用149,所以这是149的结构,其他的再更改,根据个人需要。
//头文件
#i nclude
//函数声明
void InitSys();
int main( void )
{
start:
LPM3;
goto start;
}
void InitSys()
{
//使用XT2振荡器
//以下填充用户代码,对各种模块、中断、外围设备等进行初始化
}
#pragma vector=PORT2_VECTOR
__interrupt void Port2()
{
//以下为参考处理程序,不使用的端口应当删除其对于中断源的判断。
if((P2IFG&BIT0) == BIT0)
{
}
else if((P2IFG&BIT1) ==BIT1)
{
}
else if((P2IFG&BIT2) ==BIT2)
{
}
else if((P2IFG&BIT3) ==BIT3)
{
}
else if((P2IFG&BIT4) ==BIT4)
{
}
else if((P2IFG&BIT5) ==BIT5)
{
}
else if((P2IFG&BIT6) ==BIT6)
{
}
else
{
//以下填充用户代码
}
LPM3_EXIT; //退出中断后退出低功耗模式。若退出中断后要保留低功耗模式,将本句屏蔽
}
#pragma vector=USART1TX_VECTOR
__interrupt void Usart1Tx()
{
//以下填充用户代码
LPM3_EXIT; //退出中断后退出低功耗模式。若退出中断后要保留低功耗模式,将本句屏蔽
}
#pragma vector=USART1RX_VECTOR
__interrupt void Ustra1Rx()
{
//以下填充用户代码
LPM3_EXIT; //退出中断后退出低功耗模式。若退出中断后要保留低功耗模式,将本句屏蔽
}
#pragma vector=PORT1_VECTOR
__interrupt void Port1()
{
//以下为参考处理程序,不使用的端口应当删除其对于中断源的判断。
if((P1IFG&BIT0) == BIT0)
{
}
else if((P1IFG&BIT1) ==BIT1)
{
//以下填充用户代码
}
else if((P1IFG&BIT2) ==BIT2)
{
}
else if((P1IFG&BIT3) ==BIT3)
{
}
else if((P1IFG&BIT4) ==BIT4)
{
}
else if((P1IFG&BIT5) ==BIT5)
{
}
else if((P1IFG&BIT6) ==BIT6)
{
}
else
{
}
LPM3_EXIT; //退出中断后退出低功耗模式。若退出中断后要保留低功耗模式,将本句屏蔽
}
#pragma vector=TIMERA1_V
程序匠人MSP430学习笔 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)