完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
MSP430F1121(下面简称F1121)是ti公司新近推出的一款廉价的20引脚低功耗16位Flash单片机。它所具备的多种中断功能使其应用灵活,并适用于各种不同的应用领域。 不过,我们在应用开发中发现,厂家提供的技术文件虽然不少,但是对有关中断的说明却不那么详尽,这就给应用开发造成了诸多不便。为此,我们专门用程序进行了一些试验,并从中明确了一些问题。在这里,我们就把这些问题说明一下,供大家参考。 在说明这些问题之前,有必要先来看一下F1121的中断,如表1所列。 表1 F1121中断 F1121的各个中断都有对应的中断向量和中断优先级,通常被分为三类:系统复位、(非)屏蔽中断和可屏蔽中断。此外,F1121的各中断又分单源中断和多源中断,对应的中断标志称为单源中断标志和多源中断标志。 一、 系统复位 从形式上讲,可以把系统复位看成一种中断,但这是一种特殊的中断,虽然它也有中断向量(复位向量)和中断优先级,但与通常意义的中断有明显的区别:系统复位导致系统进入初始状态,并迫使程序从头开始运行。 1. 导致系统复位的情况及POR和PUC信号 有4种情况能够导致系统复位,并且产生POR(Power-On Reset)和PUC(Power-Up Clear)信号: · 上电复位——产生POR和PUC; · RST复位(外部复位信号复位)——产生POR和PUC; · 看门狗中断——仅产生PUC; · 关键码错误中断——仅产生PUC。 POR和PUC都是系统复位时产生的芯片内部信号,负责对寄存器进行初始化。在F1121提供的技术文件中,由PUC信号负责初始化的那些寄存器位,其初始状态用“?0”和“?1”来表示,而由POR信号负责的,用“?(0)”和“?(1)”来表示。例如,图1所示的BCSCTL1寄存器,高4 位由POR负责,低4位由PUC负责。 不同的系统复位情况产生不同的PUC和POR,因而产生不同的系统初始化结果。例如,对于BCSCTL1寄存器,不管是什么原因造成了系统复位,其低4位都将回到初始状态上;高4位只有在上电复位和RST复位这两种情况下才会回到初始状态,而在其他情况下(除非芯片掉电)其状态保持不变。 2. 看门狗中断标志WDTIFG 看门狗定时器有两种工作方式,且都使用中断标志WDTIFG,但它们的表现却有明显的区别。在看门狗工作方式下(产生导致系统复位的看门狗中断),其表现为:当发生看门狗中断而导致系统复位时,WDTIFG将置“1”(其他复位情况下为“0”)。这时的WDTIFG不能自动清“0”,只有等待软件(程序指令)将其清“0”。不过即使不清“0”(无论WDTIFG是“1”还是“0”),也不会影响程序的运行,而且也不会妨碍再次产生看门狗中断。实际上,这时的WDTIFG仅仅是标记一下是否产生了看门狗中断的作用,以便区分系统复位的原因。另一个导致系统复位的关键码错误中断的中断标志KEYV 的情况也是如此。 另外,中断使能位WDTIE对看门狗中断不起任何作用。二、 中断 中断分为可屏蔽中断和非屏蔽中断,区分它们的惟一准则是GIE(可屏蔽中断使能总控制位)能否禁止其中断。凡是能被GIE禁止的就是可屏蔽中断,不能被禁止的就是非屏蔽中断。 但是在F1121中,真正的非屏蔽中断只有看门狗中断和关键码错误中断。这两种中断却不是普通意义的中断,因为它们会导致系统复位。除此之外,还有三种中断属于非屏蔽中断的范畴,但它们却不是真正的非屏蔽中断,因为它们各自都有自己的中断使能控制位,这些中断使能控制位能够屏蔽它们的中断。所以,对这三种中断用“(非)屏蔽中断”来表示。 1. 中断标志 无论可屏蔽中断还是(非)屏蔽中断都有自己的中断标志,其共同特点是:① 中断标志的状态与该中断源能否产生中断无关。或者说,不管是否允许其中断,只要满足了中断的条件,中断标志就会置“1”。另外,也可以用软件将中断标志置 “1”或清“0”。② 中断源就是通过中断标志请求中断的(当允许其中断时)。下面以(看门狗)定时器中断(不同于看门狗中断,它产生可屏蔽中断,中断向量为FFF4h,中断优先级是10)为例进行说明。 · 在允许其中断的情况下,无论什么原因,只要WDTIFG置“1”就会产生中断。例如,定时器溢出(这时WDTIFG置“1”)会产生中断,用软件强行将WDTIFG置“1”也会产生中断。 · 如果在中断被禁止的情况下WDTIFG已经置“1”,那么一旦允许,它就会产生中断。 · 如果在中断被禁止的情况下WDTIFG已经置“1”,但是,假如在允许它中断之前将其清“0”,那么,即使允许,它也不会产生中断。 中断标志分为两种——单源中断标志和多源中断标志,它们有不同的特性。 (1) 单源中断标志 如果一个中断向量(也就是中断处理程序)只对应惟一的一个中断源,那么,这个中断就被称为单源中断,其中断标志就是单源中断标志。例如,(看门狗)定时器中断的WDTIFG、比较器A中断的CAIFG和定时器A中断的CCIFG0都是单源中断标志。 单源中断标志的特性是:当单源中断被响应时,其单源中断标志将会自动清“0”。 但须注意,如果在中断处理过程中(中断返回之前)这个单源中断标志又重新被置“1”,那么,它就不会自动清“0”了,只有用软件才能将其清“0”。 (2) 多源中断标志 如果一个中断向量对应于多个中断源(即多个中断共用一个中断处理程序),那么这些中断都称为多源中断,对应的各个中断标志都是多源中断标志。例如,三个(非)屏蔽中断的NMIIFG、OFIFG、ACCVIFG以及定时器A中断的CCIFG1、CCIFG2、 TAIFG和P1及P2口的所有中断标志都是多源中断标志。 多源中断标志的特性是:当多源中断被响应时,多源中断标志不能自动清“0”,只能用软件才能将其清“0”。因此,一定不要忘记在中断返回之前将多源中断标志清“0”;否则,当中断返回后,这个没有被清“0”的中断标志马上就会再次请求中断。 2. (非)屏蔽中断 一共有三个(非)屏蔽中断:NMI中断、振荡器故障中断和Flash读写错误中断。它们不受GIE状态的影响,但各自都有中断使能位:NMIIE、OFIE和ACCVIE,只有当中断使能位被置位后,才能允许对应的中断源产生中断。 注意:对这三个(非)屏蔽中断来说,只要响应了其中的一个中断,所有这三个中断使能位就会全部自动复位,而且一直保持在复位状态上,即使中断返回后它们也不会自动恢复为先前的状态,所以,需要用软件才能将它们重新置位。另外须注意的是,这三个中断都是多源中断。 3. 可屏蔽中断和GIE 能够被GIE禁止的中断都是可屏蔽中断,其中有的是单源中断(单源中断标志),有的是多源中断(多源中断标志)。所有这些中断都有各自的中断使能位,只有当中断使能位被置位并且GIE置位后,才能允许对应的中断源产生中断。除了系统复位或者用软件进行改写之外,其他任何情况(包括中断响应或中断返回等)都不会对这些中断使能位的状态产生影响。 GIE是可屏蔽中断使能总控制位,当它复位时禁止所有可屏蔽中断源请求中断,当它置位时才有可能允许它们请求中断(能否允许还取决于它们各自的中断使能位的状态)。 注意:当响应了任何一个中断时,包括可屏蔽中断和(非)屏蔽中断,GIE将会自动复位;当中断返回时它又会自动恢复为中断前的状态(除非在中断处理期间改写了保存在堆栈中的GIE的内容)。 如果在中断处理期间用软件将已经复位的GIE重新置位,这时就可以形成可屏蔽中断嵌套。 4. 中断优先级 F1121的中断优先级与其他微处理器中的概念略有不同:它只对同时发生多个中断的情况有效(级别高的中断优先被响应),而对中断嵌套的情况没有任何限制。 5. 中断嵌套 如果在处理某一中断期间又响应了其他中断请求,这时就会形成中断嵌套。中断嵌套时,前一中断处理过程被暂停,当后一中断被处理完之后才会继续处理前一中断。 注意:只有在中断处理期间将GIE重新置位,可屏蔽中断才能够嵌入到这个中断的处理之中;但(非)屏蔽中断却不受此限制,它们可以随时嵌入到任何处理之中(如果允许其中断的话)。另外,F1121的中断嵌套不受中断优先级的任何限制。也就是说,高级别中断可以嵌入到低级别中断的处理过程中;反过来,低级别中断也可以嵌入到高级别的中断处理过程中,甚至可以形成自身嵌套。这些情况对(非)屏蔽中断也不例外。因此,在使用F1121时须特别注意这一点,即使不是有意使用中断嵌套,也必须考虑这一问题,因为这时仍会存在发生中断嵌套的可能,而且,如果嵌套会影响中断的某一(些)状态的话,就有可能造成系统运行错误。 |
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
3051个成员聚集在这个小组
加入小组2962 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3673 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2360 浏览 1 评论
4824 浏览 1 评论
2585 浏览 1 评论
1359浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3673浏览 2评论
2962浏览 1评论
1554浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 21:17 , Processed in 1.346084 second(s), Total 44, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号