430的启动,I/O中断
感言:看了这一集MSP430的讲解之后,我才知道msp430真的和arm7没什么区别了,可能在某些功能上要比arm7要优秀
1:430的系统复位和初始化初始化
430的系统复位有两个来源
1:POR上电复位,他有3个来源可以是给器件上电,发现电压不稳定,给复位电路一个复位信号都可以导致产生一个复位信号
2:PUC上电清除,他也有4个来源,可以是产生了一个POR的中断,可以是看门狗定时器的溢出,也可以是看门狗的密匙出现错误,还可以是flash读写错误
在430单片机上电来一个复位信号,初始化内部寄存器,保证cpu的正常工作,同时pc指向oxffe,sp的话指向堆栈顶部,430有一个很独特的地方,就是看门狗是默认开启的
430的中断分为3类:系统复位,非可屏蔽中断,可屏蔽中断
1:系统复位指的是POR和PUC中断
2:非可屏蔽中断,就是状态寄存器控制不了,有情况产生,立即产生一个中断,意外情况包括:片外振荡器失效,对flash空间的错误访问等等
3:可屏蔽中断,必须要在状态寄存器上开总中断才能控制
430的中断响应:(需要六个机器周期)
步骤如下:1:执行完当前pc指向的语句
2:取出下一条的语句的地址,还有状态寄存器的值,压入堆栈
3:通过仲裁逻辑判断中断的优先级别
4:执行中断服务程序(注意的是,对于单元的中断,中断的标志位会自动清楚,比如串口中断,但是对于多元的中断,比如POR和PUC中断,就必须由用户手动清除
5:取回堆栈中的地址,还有状态寄存器的值,继续执行原始程序
430的通用I/O也很有意思
它具有6组通用的I/O,但是和其他的单片机不同,它的I/O的方向是默认的是输入方向,其中中功能达到了空前的数量,P1和P2都可以作为外部中断,所以中断的个数也有16个,430的中断只能够是边沿跳变触发,不能是电平触发,用户可以自己设置是上升沿还是下降沿触发中断
由于I/O的管脚是默认输入的,因此,要对其进行设置,这又涉及了寄存器的操作,过程详细的看datasheet
版权所有,转载请注明链接地址:http://www.cnblogs.com/fengdashen/p/3372673.html
430的启动,I/O中断的更多相关文章
- 【Java 语言】Java 多线程 一 ( 线程启动 | 线程中断 )
一. 线程启动 线程启动 : -- 1. 继承 Thread 运行线程 : 重写 Thread 类的 run 方法, 然后执行该线程; -- 2. 实现 Runnable 接口, 并运行线程; -- ...
- IDT系列:(一)初探IDT,Interrupt Descriptor Table,中断描述符表
原文: IDT系列:(一)初探IDT,Interrupt Descriptor Table,中断描述符表 IDT,Interrupt Descriptor Table,中断描述符表是CPU用来处理中 ...
- Java-线程等待、唤醒与中断
一.sleep() 与 wait() 两者都会让当前线程进入等待状态.唤醒后都需要等待 CPU 资源,不一定会立即执行.若在等待期间被调用此线程的的 interrupt() 方法,将会产生 Inter ...
- stm32f103中断学习总结
一.NVIC 介绍 NVIC 英文全称是 Nested Vectored Interrupt Controller,中文意思就是嵌套向量中断控制器,它属于 M3 内核的一个外设,控制着芯片的中断相关功 ...
- (stm32f103学习总结)—stm32中断系统
一.NVIC 介绍 NVIC 英文全称是 Nested Vectored Interrupt Controller,中文意思就是嵌套向量中断控制器,它属于 M3 内核的一个外设,控制着芯片的中断相关功 ...
- MSP430常见问题之开发工具类
Q1:我自己做了一块MSP430F149的试验板,以前用下载线进行调试没有出现过问题,但是,最近我每次make后用下载线调试时,总是弹出一个窗口,给我提示:Could not find target ...
- 远程debug调试java代码
远程debug调试java代码 日常环境和预发环境遇到问题时,可以用远程调试的方法本地打断点,在本地调试.生产环境由于网络隔离和系统稳定性考虑,不能进行远程代码调试. 整体过程是通过修改远程服务JAV ...
- CLR线程概览(一)
托管 vs. 原生线程 托管代码在“托管线程”上执行,(托管线程)与操作系统提供的原生线程不同.原生线程是在物理机器上执行的原生代码序列:而托管线程则是在CLR虚拟机上执行的虚拟线程. 正如JIT解释 ...
- [蓝牙] 5、Battery Service module
Detailed Description This module implements the Battery Service with the Battery Level characteristi ...
随机推荐
- putty连接linux as5 输入密码后连接中断
putty连接linux as5 输入密码后连接中断 1.修改putty首页的设置,选择“close session on exit” 为 “never”,之后发现输入密码后,“session clo ...
- 解决服务器断电导致mysql数据库无法启动
1.找到mysql数据库目录下的*.ini这个配置文件2.复制配置文件到桌面,当作备份3.打开配置文件,在配置文件里加上innodb_force_recovery=6这句,保存,然后重启服务器4重启完 ...
- [itint5]两有序数组的交和并
这一题也简单,唯一有意思的地方是提炼了一个函数用来做数组索引去重前进. int forward(vector<int> &arr, int i) { while (i+1 < ...
- 删除appcompat_v7会出很多错误
创建工程的时候会出现appcompat_v7这个文件夹 手贱删除后,发现出错了 说明test项目是依赖于appcompat_v7包的,所以这个appcompat_v7包是不能被删除的. appcomp ...
- WM_ACTIVATE
参数: fActive = LOWORD(wParam); // activation flag fMinimized = (BOOL)HIWORD(wParam); // minimized ...
- ZOJ1586——QS Network(最小生成树)
QS Network DescriptionIn the planet w-503 of galaxy cgb, there is a kind of intelligent creature nam ...
- 数据库存储安全之(MD5+盐)加密
一般系统数据库密码加密方式: MD5后存入数据库 SHA1 Hash后存入数据库 缺点:黑客可以通过密码暴力破解获取密码信息,具体做法是将常用密码进行Hash后做成一个字典, 破解的时候,只需要查字典 ...
- Android invalidate()自动清屏,屏幕刷新
invalidate()是用来刷新View的,必须是在UI线程中进行工作.比如在修改某个view的显示时,调用invalidate()才能看到重新绘制的界面.invalidate()的调用是把之前的旧 ...
- P132、面试题21:包含min函数的栈
实现思路:们需要一个辅助栈.每次push一个新元素的时候,同时将最小元素(或最小元素的位置.考虑到栈元素的类型可能是复杂的数据结构,用最小元素的位置将能减少空间消耗)push到辅助栈中:每次pop一个 ...
- 【剑指offer】数字在排序数组中出现的次数
2013-09-02 16:28:35 找出数字在排序数组中出现的次数. 注意几点: 一开始试图用size_t类型表示数组的下标begin.end,到那时这样做在end = 0时,end - 1是si ...