感言:看了这一集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中断的更多相关文章

  1. 【Java 语言】Java 多线程 一 ( 线程启动 | 线程中断 )

    一. 线程启动 线程启动 : -- 1. 继承 Thread 运行线程 : 重写 Thread 类的 run 方法, 然后执行该线程; -- 2. 实现 Runnable 接口, 并运行线程; -- ...

  2. IDT系列:(一)初探IDT,Interrupt Descriptor Table,中断描述符表

    原文:  IDT系列:(一)初探IDT,Interrupt Descriptor Table,中断描述符表 IDT,Interrupt Descriptor Table,中断描述符表是CPU用来处理中 ...

  3. Java-线程等待、唤醒与中断

    一.sleep() 与 wait() 两者都会让当前线程进入等待状态.唤醒后都需要等待 CPU 资源,不一定会立即执行.若在等待期间被调用此线程的的 interrupt() 方法,将会产生 Inter ...

  4. stm32f103中断学习总结

    一.NVIC 介绍 NVIC 英文全称是 Nested Vectored Interrupt Controller,中文意思就是嵌套向量中断控制器,它属于 M3 内核的一个外设,控制着芯片的中断相关功 ...

  5. (stm32f103学习总结)—stm32中断系统

    一.NVIC 介绍 NVIC 英文全称是 Nested Vectored Interrupt Controller,中文意思就是嵌套向量中断控制器,它属于 M3 内核的一个外设,控制着芯片的中断相关功 ...

  6. MSP430常见问题之开发工具类

    Q1:我自己做了一块MSP430F149的试验板,以前用下载线进行调试没有出现过问题,但是,最近我每次make后用下载线调试时,总是弹出一个窗口,给我提示:Could not find target ...

  7. 远程debug调试java代码

    远程debug调试java代码 日常环境和预发环境遇到问题时,可以用远程调试的方法本地打断点,在本地调试.生产环境由于网络隔离和系统稳定性考虑,不能进行远程代码调试. 整体过程是通过修改远程服务JAV ...

  8. CLR线程概览(一)

    托管 vs. 原生线程 托管代码在“托管线程”上执行,(托管线程)与操作系统提供的原生线程不同.原生线程是在物理机器上执行的原生代码序列:而托管线程则是在CLR虚拟机上执行的虚拟线程. 正如JIT解释 ...

  9. [蓝牙] 5、Battery Service module

    Detailed Description This module implements the Battery Service with the Battery Level characteristi ...

随机推荐

  1. 使用 Android Studio 跑新浪微博SDK Demo遇到的问题及解决

    概述 这是新浪微博官方 Android SDK Demo 使用 Android Studio 导入.编译并运行通过的版本. 源码:WeiboSdkDemo 官方项目请点击: weibo_android ...

  2. bnuoj 4187 GCC (数论)

    http://www.bnuoj.com/bnuoj/problem_show.php?pid=4187 [题意]:如题 [题解]:取n,m的最小值进行遍历就可以了: 注意 0 1 这组测试数据 [c ...

  3. PHP运算符及php取整函数

    ceil -- 进一法取整 说明 float ceil ( float value ) 返回不小于 value 的下一个整数,value 如果有小数部分则进一位.ceil() 返回的类型仍然是 flo ...

  4. Android支付接入(一):支付宝

    原地址:http://blog.csdn.net/simdanfeg/article/details/9011603 转载之前我想深深地感谢屌丝哥 相信相同过App获取利润的都会需要接入计费SDK,下 ...

  5. Java Web开发 之JavaBean整理

    JavaBean是一种Java组件技术,就其本质就是一个类,具有如下特点:1:实现可序列化2:有一个public的无参的构造方法3:所有实例变量都是private的4:为每一个属性提供getter和s ...

  6. 214. Shortest Palindrome

    题目: Given a string S, you are allowed to convert it to a palindrome by adding characters in front of ...

  7. P51、面试题5:从尾到头打印链表

    题目:输入一个链表的头结点,从尾到头反过来打印出每个结点的值. 链表结点定义如下: Struct ListNode{ int   m_nKey; ListNode*   m_pNext; }; 我们可 ...

  8. C#和.net之间的关系

    What is the difference between C# and .NET? In addition to what Andrew said, it is worth noting that ...

  9. Android-xUtils框架介绍(三)

    继续介绍xUtils的最后两个模块:DbUtils和HttpUtils.首先先介绍第一个SQLite数据库操纵的简单ORM框架,只要能理解xUtils为我们提供的api,相信你也能熟练的把DbUtil ...

  10. Emulator control为灰色的情况

    新建了一个虚拟机,然后发现Emulator control为灰色,让eclipse重启下就可以了,然后就可以使用了.