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 ...
随机推荐
- [转]SqlServer数据库同步方案详解
SqlServer数据库同步是项目中常用到的环节,若一个项目中的数据同时存在于不同的数据库服务器中,而这些数据库需要被多个不同的网域调用时,配置 SqlServer数据库同步是个比较好的解决方案.Sq ...
- 2328: [HNOI2011]赛车游戏 - BZOJ
先把一定要减的费用先减掉,就是b*s*len(上坡路),下坡路就设一个初速度,使耗油为0,如果没油了,就无法到达 然后考虑加速 对于长度为len的路,增加v的速度需要len*a*v的油,与len成正比 ...
- 【高斯消元】Poj 1222:EXTENDED LIGHTS OUT
Description In an extended version of the game Lights Out, is a puzzle with 5 rows of 6 buttons each ...
- js对象转到字符串
var str = JSON.stringify(obj);
- [转载]Log4net学习笔记
Log4net 学习笔记: 主要是根据apache站点整理的: 原文链接:http://logging.apache.org/log4net/release/sdk/ http://logging.a ...
- spoj 2148
看似很水 却wa了好多遍 spoj上果然没有一下可以水过去的题....... #include<cstdio> #include<cstring> #include< ...
- [笨木头FireFly 02]入门篇2_客户端发送请求,服务器处理请求
原地址:http://www.9miao.com/question-15-53940.html 好,经过上一篇不权威的讲解,大家已经能轻易地让客户端和服务端连接起来了. 但是,仅仅是连接了,可它们俩不 ...
- DIY Ruby CPU 分析——Part III
[编者按]作者 Emil Soman,Rubyist,除此之外竟然同时也是艺术家,吉他手,Garden City RubyConf 组织者.本文是 DIY Ruby CPU Profiling 的第二 ...
- Linq基本用法
- CF 136B Ternary Logic
http://codeforces.com/problemset/problem/136/B 题意 :就是说tor是一个三进制的运算,代表的是两个三进制数的运算,两个三进制数按位逐一相加后对三取余,没 ...