3-MSP430引脚中断
为了写一篇文章做铺垫--提醒着自己,,,,,,
这两天一直在寻找
#pragma vector = PORT1_VECTOR
__interrupt void P1_Interrupt()//P1口中断函数
{ }
对于这两句话的解释,最起码让自己感觉能说服自己
看了好多后自己的理解
#pragma vector = PORT1_VECTOR
通俗来讲这句话是告诉C编译器,你下面的函数是P1口的中断函数,P1口有中断发生时就进入下面这个函数
__interrupt void P1_Interrupt()//P1口中断函数
{ }
那期间到底发生了什么
其实MSP430内部有一个中断向量表----中断向量表实际就是保存中断函数入口地址的存储单元空间
假如说,下面是表的一段,,,,假如说,,,,,
那么
#pragma vector = PORT1_VECTOR
就应该这样理解
告诉编译器下面有一个P1口的中断服务函数,你应该把这个中断函数的地址放在
__interrupt //告诉编译器这是个中断服务函数
再举一个例子,假设写一个串口接收中断函数
#pragma vector=UART0RX_VECTOR __interrupt void Uart_Receive()
{
}
其实
#pragma vector=UART0RX_VECTOR
后面的
UART0RX_VECTOR就是在告诉编译器,下面的中断函数是串口接收中断服务函数,你要把它的服务函数地址放到保存串口接收中断服务函数的地址里
对了后面
PORT1_VECTOR P1口中断
PORT2_VECTOR P2口中断
UART0RX_VECTOR 串口接收中断
UART0TX_VECTOR 串口发送中断
TIMER0_A0_VECTOR 定时器A中断
干脆盗一张图
,,,,,,,,,
正事,
对于引脚中断,学过51的都知道无非就是打开中断,,然后选择触发方式,然后写中断函数,然后再中断函数里清除中断标志(假如说.它不自动清除中断标志的话)
P1.2口有一的下降沿P1.0口的引脚反转
#include "io430.h"
void main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD; P1DIR |= BIT0;//p1.0输出模式 P1IE |= BIT2;//使能p1.2中断
P1IES |= BIT2;//下降沿触发
P1IFG &= ~BIT2;//清除p1.2中断,,感觉可有可无,加上更显得代码很完善 __enable_interrupt();
while()
{ }
}
#pragma vector = PORT1_VECTOR
__interrupt void P1_Interrupt()//P1口中断函数
{
if(P1IFG&BIT2) //P1.2口来中断啦
{
P1IFG &= ~BIT2;//清除P1.2引脚中断标志位
P1OUT ^= BIT0;//P1.0引脚取反
}
}
假如说我P1.2和P1.3都想用中断呢
P1.2口有一的下降沿P1.0口的引脚反转
P1.3口有一的下降沿P1.1口的引脚反转
#include "io430.h"
void main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD; P1DIR |= BIT0;//p1.0输出模式
P1DIR |= BIT1;//p1.1输出模式 P1IE |= BIT2;//使能p1.2中断
P1IES |= BIT2;//下降沿触发
P1IFG &= ~BIT2;//清除p1.2中断 P1IE |= BIT3;//使能p1.3中断
P1IES |= BIT3;//下降沿触发
P1IFG &= ~BIT3;//清除p1.3中断 __enable_interrupt();
while()
{ }
}
#pragma vector = PORT1_VECTOR
__interrupt void P1_Interrupt()//P1口中断函数
{
if(P1IFG&BIT2)//如果P1.2有中断
{
P1IFG &= ~BIT2;//清除P1.2引脚中断标志位
P1OUT ^= BIT0;//P1.0引脚取反
}
if(P1IFG&BIT3)//如果P1.3有中断
{
P1IFG &= ~BIT3;//清除P1.3引脚中断标志位
P1OUT ^= BIT1;//P1.1引脚取反
}
}
其实自己有点疑惑,,,为什么灯同时亮灭呢!同时触发,同时检测吗?,难道P1口是一个整体,那就太好了,同时用中断检测多路,不怕信号同时到来,,,,,,
3-MSP430引脚中断的更多相关文章
- 关于STM32的外部引脚中断的问题
今天想用自己以前的比较干净的工程模板做一个东西,,,,,,,在添加上引脚中断的时候,,突然想知道自己配置的中断优先级是否正确执行,,,,, 以前刚学习32的时候测试过是可以的,,不过今天发现了一个大问 ...
- TI CC2541的引脚中断.
- MSP430:中断简介
(5).中断应用程序举例(外部中断): void interrupt_initial() { P1DIR&=~BIT7; //P1.7为输入 P1IE|=0x80; //P ...
- MSP430单片机的中断
这篇文章是从网上转载过来的,原文章地址:http://www.21ic.com/jichuzhishi/mcu/questions/2012-12-21/154794.html 中断是MSP430微处 ...
- 关于MSP430中断机制
中断很大程度上体现了一款单片机的性能,从这一点将MSP430在中断方面做得很不错,主要是提供了非常丰富的中断源,基本的有IO中断,定时器中断和一些接口中断(SPI,UART,I2C)等等. 现 ...
- MSP430常见问题之IO端口类
Q1:请问430 的I/O 中断能不能可靠的响应60ns 的脉冲信号, 就是来了一个60ns 的脉冲,430 的中断会有丢失吗?A1:端口支持的最高8M的时钟,无法响应这么快的频率. Q2:430是3 ...
- STM32 GPIO外部中断总结
一.STM32中断分组: STM32 的每一个GPIO都能配置成一个外部中断触发源,这点也是 STM32 的强大之处.STM32 通过根据引脚的序号不同将众多中断触发源分成不同的组,比如:PA0,PB ...
- STM32F0xx_EXIT中断配置详细过程
Ⅰ.概述 EXIT外部中断在使用到按键或者开关控制等应用中比较常见,低功耗中断唤醒也是很常见的一种.因此,EXIT在实际项目开发中也是比较常见的一种. STM32F0中外部中断EXIT属于中断和事件的 ...
- Msp430概述
总结一下MSP430给我的印象吧,感觉他就是一个迷你型的arm 1:MSP430采用的是精简指令,他只有27条核心的汇编指令,这一点和arm相同,arm同样是采用精简指令,而80c51采用的是冗余指令 ...
随机推荐
- ORACLE 分组之后容易被忽略的bug
COL_2 COL_321 3123 31 如上表数据 前台显示显示需要把COL_2的21和23转换成中文 ‘整机’ 最开始如下编写 SELECT t.col_3, CASE ...
- IP验证
function isIP(str) { var IP = '(25[0-5]|2[0-4]\\d|1\\d\\d|\\d\\d|\\d)'; var IPdot = IP + '\\.'; var ...
- (转) Lua使用心得一 LUA和VC整合
这几天研究了一下lua,主要关注的是lua和vc之间的整合,把代码都写好放在VC宿主程序里,然后在lua里调用宿主程序的这些代码(或者叫接口.组件,随便你怎么叫),希望能用脚本来控制主程序的行为.这实 ...
- [原创]使用Pandoc实现Markdown文件转PDF文件
Markdown写法简单明快,我十分喜欢,以至于我最近都想使用Markdown快速的进行测试说明书的写作,但是考虑到这文档是要进行交接的,一个.md的文件在内部传输还是有不便,于是就想到了能不能把Ma ...
- 案例:TableLayout表格布局——迷你计算器
计算器可以常用线性布局(LinearLayout)和表格布局(tableLayout).Gridlayout 今天我用的是表格布局 效果如下: 代码如下: <TableLayout xmlns: ...
- 前端---HTML
HTML基础 本章内容: 简介 HTML定义 标签定义和属性 HTML5基本结构 HTML5字符集 <head>标签 <title> <base/> <lin ...
- cell线条前后缩短
[cell setSeparatorInset:UIEdgeInsetsMake(0, 20, 0, 20)];
- Java中XML格式的字符串4读取方式的简单比较
Java中XML格式的字符串4读取方式的简单比较 1.java自带的DOM解析. import java.io.StringReader; import javax.xml.parsers.Docum ...
- python datatime
一.datetime 1.date date.today() 2.time 3.datetime datetime.now() datetime.strftime(fmt) 转换为字符串 dateti ...
- jsp 和jspf
http://www.cnblogs.com/liaojie970/p/5035077.html