MC9S12中断向量表 中断通道号 中断名称

合集下载

MC9S12XDP512串口使用笔记(中断方式)

MC9S12XDP512串口使用笔记(中断方式)

MC9S12XDP512串口使用笔记(中断方式)1.相关寄存器:1.SCIBDH,SCIBDL:波特率寄存器(SCIBDH只有低5位有效)波特率 = 总线频率 / (16 * SBR[12:0])2.SCICR2: SCI控制寄存器2位数7 6 5 4 3 2 1 0含义TIE TCIE RIE ILIE TE RE RWU SBK复位值0 0 0 0 0 0 0 0TIE: 发送中断使能位。

使能发送数据寄存器空标志(TDRE)来产生中断申请TCIE: 发送完成中断使能位。

使能发送完成标志(TC)来产生中断申请 RIE: 接收器满中断使能位TE: 发送器使能位RE: 接收器使能位3.SCISR1: SCI状态寄存器1位数7 6 5 4 3 2 1 0含义TDRE TC RDRF IDLE OR NF FE PF复位值 1 1 0 0 0 0 0 0TDRE: 发送数据寄存器空标志TC: 发送完成标志RDRF: 接收数据寄存器满标志4.SCIDRL,(SCIDRH): SCI数据寄存器2.寄存器使用注意事项:1.TDRE(TC)复位值为1,因此将SCICR2的TIE(TCIE)置为1即可产生中断2.TDRE,TC的清除方法:读SCISR1,然后写SCIDRL,注意,发送完最后一个字节之后,会产生中断,但因为这是最后一个字节,故不会写SCIDRL,中断标志仍然存在3.RDRF的清除方法:读SCISR1,然后读SCIDRL。

3.示例函数;说明:1. 发送和接收都采用中断方式,以帧为基本处理单元,当接收到一帧完整数据时,置位接收标志,主程序不断查询接收标志,若接收标志置位,则调用接收处理函数解析接收到的帧。

2. 通信协议基本形式:帧头(1字节) +通信头(1字节) +通信数据长度(1字节)+通信数据+校验字(1字节)通信头:表示通信的内容通信数据长度 = 通信数据长度 + 校验字长度[c-sharp]view plaincopy1.// ============================================================================2.// SCI初始化程序3.// 注:总线时钟为40MHZ4.// baudrate = 153600,即9600bytes/s 使能接收中断(实际:156250bps)5.// ============================================================================6.void SCI_Init(void)7.{8.// SCI19. SCI1BDH = 0X00; // baud rate = bus clock / (16*SBR[12:0]) 波特率153600,SBR[12:0]= 16 = 0X0F;10. SCI1BDL = 0X0F;11. SCI1CR2 = 0x2C; // 接收使能,接收器满中断使能,发送使能12.}13.// ============================================================================14.// 发送数据请求函数15.// 如果没有数据正在发送,则立即发送,如果有数据正在发送,则置位发送请求标志位16.// 主流程不断查询发送请求标志位,若有该标志位,且没有数据正在发送则发送17.// ============================================================================18.void Send(byte commd)19.{20. SCI_Commd=commd;21.if(Status.Bits.Uart_R_Over==0) // 发送完成22. {23. Send_1();24. }25.else26. {27. Status.Bits.Uart_T_Commd=1; // 置位发送请求标志28. }29.}30.// ============================================================================31.// 发送函数32.// Pre_Send():发送预处理函数,根据通信头(commd)内容处理发送缓冲区33.// ============================================================================void Send_1(void)34.{35. Pre_Send();36. Status.Bits.Uart_R_Over = 1; // 置位正在发送标志37. SCI1CR2 |= 0x40; // 使能中断38.}// ============================================================================39.// 串口中断程序40.// 中断接收和中断发送41.// ============================================================================42.interrupt void SCI1_INT(void)43.{44.static byte R_num = 0, R_curr = 0; // 接收数据总数和当前指针45.static byte T_num = 0, T_curr = 0; // 发送数据总数和当前指针46.47.48.if(SCI1SR1_RDRF == 1) // 接收中断49. {50. Uart_R_Str[R_curr] = SCI1DRL;51. R_curr++;52.// 判断是否为帧头53.if(R_curr == 1)54. {55.// 若不为帧头,复位指针56.if(Uart_R_Str[0] != Frame_Header)57. {58. R_curr = 0;59. R_num = 0;60. }61. }62.if(R_curr == 3) // 第二字节,通信帧长度63. R_num = Uart_R_Str[2]+1; // Uart_R_Str[1] 为通信帧长度64.65.// 每接收一个数据,num减1,当num为0时,一帧数据接收完毕66.if(R_num != 0)67. {68. R_num--;69.70.if(R_num == 0)71. {72. R_curr = 0; // 当前存储位置指向Uart_R_Str[0]73. Status.Bits.Uart_Status = 1; // 置Uart接收完一帧数据标志位74. }75. }76. }77.78.// 发送中断79.else if(SCI1SR1_TC == 1) // 发送完成标志80. {81.// 最后一个字节发送完成82.if(T_curr == Uart_T_Str[2]+3)83. {84.//SCI1CR2 &= 0XF7; // 关闭发送功能85. SCI1CR2 &= 0xBF;86. T_curr = 0; // 复位数据指针87. Status.Bits.Uart_R_Over = 0; // 发送完成88. }89.else90. SCI1DRL = Uart_T_Str[T_curr++];91. }92.}93.// ============================================================================94.// 主程序95.// ============================================================================96./******************************全局变量**************************/97.volatile byte Uart_R_Str[Uart_R_Length]; // 串口接收数据缓冲区98.volatile byte Uart_T_Str[Uart_T_Length]; // 串口发送数据缓冲区99./****************************************************************/100.101.void main(void)102.{103.// 初始化代码104. ...105.106.for(;;)107. {108.if(Status.Bits.Uart_Status)109. {110. Uart_Deal(); // 接收帧处理函数,功能:校验,解析帧。

MC9S12单片机原理及嵌入式应用开发技术第4章 单片机中断系统(实验2 IO+IRQ)

MC9S12单片机原理及嵌入式应用开发技术第4章 单片机中断系统(实验2 IO+IRQ)
源自164.4 中断优先级
8、中断优先级
多个中断同时出现时,高优先级中断先得到响应 中断优先级可以是固定的或编程指定的 固定优先级:根据中断向量表顺序 设定优先级:每个中断都有优先级设置位 相同优先级的中断,按先后顺序处理 S12X单片机的中断优先级: 中断优先级总共分7个级别,1级最低,7级最高,0关中断;
14
4.3 中断的嵌套
7、中断嵌套
中断嵌套指CPU在执行一个中断服务程序的过程中,可以再次响应 新的中断请求。 在进入中断服务程序时,CPU硬件会将全局中断使能位关闭。为了 实现中断嵌套,必须在ISR开始重新允许全局中断(在有多优先级的 情况下,选择允许到哪一个级别的中断)。 中断嵌套的层数 中断嵌套对堆栈的消耗很大
外部中断XIRQ($FFF4) 软件中断(SWl) ($FFF6) 非法指令陷阱($FFF8)
● 3个系统复位向量($FFFA—$FFFE)
看门狗、时钟监视器、复位
College of Communication Engineering, Jilin University
5
4.2 中断的工作流程
2、中断标志:在中断源发生变化后,会置相应的中断标志, 用以表明当前该中断源产生了请求事件。中断 标志在系统允许的情况下,就会向CPU发出中 断请求信号。多个中断源可能共用一个中断请 求信号,靠查询中断标志来区分中断源。
恢复返回地址 恢复现场
堆栈
College of Communication Engineering, Jilin University
10
4.2 中断的工作流程
中断时,返回地址的保存与恢复由CPU硬件完成,至于在中 断时哪些寄存器被保存以及在堆栈中的保存顺序是由具体的CPU 决定的,见其工作手册。 S12XS单片机在复位后其中断被禁止,需要使用开中断指令 允许CPU响应中断。响应中断时,由硬件将核心寄存器堆推入堆 栈,顺序如下:

第4章_S12中断系统

第4章_S12中断系统

4.2 S12中断 优先级
4.2 S12中断 优先级
4.2 S12中断优先级
表6.2中的最后一列表示最高优先级中断设定寄存器(HPRIO)中 可以设置的数值,通过设置该寄存器,可以将某个可屏蔽中断的优先级 “推进”为可屏蔽中断中的最高优先级中断。最高优先级中断设定寄存 器(INTCR)如图6.4所示。
4.1.2 S12单片机的中断
S12系列单片机的中断分为可屏蔽中断和不可屏蔽中断。S12的编 程模型中有一个条件代码寄存器,如图6.2所示,其中的X位和I位与中 断相关,X位是不可屏蔽中断的屏蔽位,置为“1”则不可屏蔽中断被关 闭,置为“0”则允许不可屏蔽中断;I位是可屏蔽中断的屏蔽位,置为 “1” 则可屏蔽中断被关闭,置为“0”则允许可屏蔽中断。在系统复位时, 这些中断屏蔽位默认为“1”,所以单片机复位后,不可屏蔽中断和可屏 蔽中断都处于关闭状态。
4.1 S12中断系统概述
4.1.2 S12单片机的中断
1.不可屏蔽中断 不可屏蔽中断包括软件中断、非法指令陷阱和 中断,下面简要介绍 常用的几个不可屏蔽中断。 (1)软件中断 SWI实质上是一条指令,但其执行过程与中断相同,即通过中断矢 量确定目标地址,中断矢量为$FFF6~$FFF7,它自动保存MCU的寄存 器和返回地址,最后必须通过RTI指令返回。 (2)非法指令陷阱 MCU正常工作时,每次获得的都是由汇编或编译程序生成的有效操 作码,MCU能够正确解释并执行它们,但当受到干扰或系统出现混乱时, 可能得到无法识别的操作码,即非法指令,这时MCU自动产生一次中断, 中断矢量地址为$FFF8~$FFF9。
4.1 S12中断系统概述
4.1.1 S12单片机的复位
(3)计算机工作正常(COP)复位 COP系统允许S12检测软件运行故障,通常COP在软件开发过程 中是关闭的。但是,一旦某个基于S12的系统完全运行后,这是一项重 要的安全保障功能之一。COP系统包含一个用户设置的倒计数定时器, 一旦定时器过期,则触发一个系统复位。为了防止定时器过期,执行的 程序必须在倒计数定时器失效之前,向ARM/RESET COP定时器寄存 器(COPRST)中写入$55和$AA。若某个程序陷入一个死循环,它将 不能发送上述必须的信息,因此将产生COP复位。为了有效地实现这 个功能,向COPRST寄存器中写入$55的代码应该有策略的分布在程序 的重要部分,写入$AA的代码则可以放在程序的其他部分。这样,一旦 微控制器在某代码处运行失效,将不会产生需要的代码序列($55或 $AA),这样就会触发COP复位。可以在程序设计中设置多对$55和 $AA,实现错误恢复功能。

飞思卡尔S12系列寄存器和中断讲解

飞思卡尔S12系列寄存器和中断讲解

S12的输入/输入端口(I/O 口)I/O端口功能可设置为通用I/O 口、驱动、内部上拉/下拉、中断输入等功能。

设置I/O口工作方式的寄存器有:DDR、10、RDR、PE、IE 和 PS。

DDR :设定I/O 口的数据方向。

IO :设定输出电平的高低。

RDR :选择I/O 口的驱动能力。

PE:选择上拉/下拉。

IE:允许或禁止端口中断。

PS: 1、中断允许位置位时,选择上升沿/下降沿触发中断;2、中断禁止时且PE有效时,用于选择上拉还是下拉。

I/O端口设置1、A 口、B 口、E 口寄存器(1)数据方向寄存器 DDRA、DDRB、DDREDDRA、DDRB、DDRE均为8位寄存器,复位后其值均为 0。

当 DDRA=0、DDRB=0、 DDRE=0 时 A 口、B 口和 E 口均为输入口。

否则,A 口、B口、E 口为输出口。

当 DDRA、DDRB、DDRE的任何一位置1时,则该位对应的引脚被设置为输出。

例如,将A 口设置为输出口,则其 C语言程序的语句为:DDRA=0xff ;(2) A 口、B 口、E 口上拉控制寄存器PUCRPUCR 初:PUPKE —— ----- --------- -——RUPEE ——-————-——PUPBE PUR\EWrite: | | |PUCR为8位寄存器,复位后的值为 0。

当PUPAE、PUPBE、PUPEE被设置为1时,A 口、B 口、E 口具有内部上拉功能;为0时,上拉无效。

当A 口、 B 口、E 口为地址/数据总线时,PUPAE和PUPBE无效。

(3)A 口、B 口、E 口降功率驱动控制寄存器RDRIVRDRIV 篇眾?RDPK 口| | 良DPE 口口| 嵐DPB RDPARDRIV为8位寄存器,复位后的值为 0,此时,A 口、B 口、E 口驱动保持全功率;当 RDPA、RDPB、RDPE为1时,A 口、B 口、E 口输出引脚的驱动功率下降(4)数据寄存器PORTA、PORTB、PORTEPORTA、PORTB、PORTE均为8位寄存器,复位后的值为 0,端口引脚输出低电平;要使引脚输出高电平,相应端口对应位应该置1。

S12单片机中断向量---完整版

S12单片机中断向量---完整版

2010-01-23 | S12单片机中断系统S12的技术手册里没有介绍中断向量,找的时候颇费了一番功夫,现在分享下给像我一样的初学者。

中断向量表可以在头文件中找到:/**************** interrupt vector table ****************/#define VReserved63 0x0000FF80#define VReserved62 0x0000FF82#define VReserved61 0x0000FF84#define VReserved60 0x0000FF86#define VReserved59 0x0000FF88#define VReserved58 0x0000FF8A#define Vpwmesdn 0x0000FF8C#define Vportp 0x0000FF8E#define Vcan4tx 0x0000FF90#define Vcan4rx 0x0000FF92#define Vcan4err 0x0000FF94#define Vcan4wkup 0x0000FF96#define Vcan3tx 0x0000FF98#define Vcan3rx 0x0000FF9A#define Vcan3err 0x0000FF9C#define Vcan3wkup 0x0000FF9E#define Vcan2tx 0x0000FFA0#define Vcan2rx 0x0000FFA2#define Vcan2err 0x0000FFA4#define Vcan2wkup 0x0000FFA6#define Vcan1tx 0x0000FFA8#define Vcan1rx 0x0000FFAA#define Vcan1wkup 0x0000FFAE #define Vcan0tx 0x0000FFB0 #define Vcan0rx 0x0000FFB2 #define Vcan0err 0x0000FFB4 #define Vcan0wkup 0x0000FFB6 #define Vflash 0x0000FFB8#define Veeprom 0x0000FFBA #define Vspi2 0x0000FFBC#define Vspi1 0x0000FFBE#define Viic 0x0000FFC0#define Vbdlc 0x0000FFC2#define Vcrgscm 0x0000FFC4 #define Vcrgplllck 0x0000FFC6 #define Vtimpabovf 0x0000FFC8 #define Vtimmdcu 0x0000FFCA #define Vporth 0x0000FFCC #define Vportj 0x0000FFCE#define Vatd1 0x0000FFD0 #define Vatd0 0x0000FFD2 #define Vsci1 0x0000FFD4#define Vsci0 0x0000FFD6#define Vspi0 0x0000FFD8#define Vtimpaie 0x0000FFDA #define Vtimpaaovf 0x0000FFDC #define Vtimovf 0x0000FFDE #define Vtimch7 0x0000FFE0 #define Vtimch6 0x0000FFE2#define Vtimch4 0x0000FFE6#define Vtimch3 0x0000FFE8#define Vtimch2 0x0000FFEA#define Vtimch1 0x0000FFEC#define Vtimch0 0x0000FFEE#define Vrti 0x0000FFF0#define Virq 0x0000FFF2#define Vxirq 0x0000FFF4#define Vswi 0x0000FFF6#define Vtrap 0x0000FFF8#define Vcop 0x0000FFFA#define Vclkmon 0x0000FFFC#define Vreset 0x0000FFFE从RESET 为0 算起向上递增,就可以得到对应的中断向量号。

资料:MC9S12XS128中文资料

资料:MC9S12XS128中文资料

飞思卡尔智能汽车竞赛XS128主要模块实验指导书第一章端口整合模块端口A,B和K为通用I/O接口端口E 整合了IRQ,XIRQ中断输入端口T 整合了1个定时模块端口S 整合了2个SCI模块和1个SPI模块端口M 整合了1个MSCAN端口P 整合了PWM 模块,同时可用作外部中断源输入端口H 和J 为通用I/O接口,同时可用作外部中断源输入端口AD 整合了1个16位通道ATD模块大部分I/O引脚可由相应的寄存器位来配置选择数据方向、驱动能力,使能上拉或下拉式装置。

当用作通用IO口时,所有的端口都有数据寄存器和数据方向寄存器。

对于端口T, S, M, P, H, 和J 有基于每个针脚的上拉和下拉控制寄存器。

对于端口AD 有基于每个针脚的上拉寄存器。

对于端口A、B、E 和K,有一个基于端口的上拉控制寄存器。

对于端口T, S, M, P, H, J, 和AD,有基于每个针脚的降额输出驱动控制寄存器。

对于端口A, B, E, 和K,有一个基于端口的降额输出驱动控制寄存器。

对于端口S、M,有漏极开路(线或)控制寄存器。

对于端口P、H 和J,有基于每个针脚的中断标志寄存器。

纯通用IO端口共计有41个,分别是:PA[7:0]PB[7:0]PE[6:5]PE[3:2]PK[7,5:0]PM[7:6]PH[7:0] (带中断输入)PJ[7:6] (带中断输入)PJ[1:0] (带中断输入)第二章脉冲宽度调制模块XS128具有8位8通道的PWM,相邻的两个通道可以级联组成16位的通道。

PWME:PWM通道使能寄存器。

PWMEx=1将立即使能该通道PWM波形输出。

若两个通道级联组成一个16位通道,则低位通道(通道数大的)的使能寄存器成为该级联通道的使能寄存器,高位通道(通道数小的)的使能寄存器和高位的波形输出是无效的。

PWMPOL:PWM极性寄存器。

PPOLx=1,则该通道的周期初始输出为高电平,达到占空比后变为低电平;相反,若PPOLx=0,则初始输出为低电平,达到占空比后变为高电平。

微机原理与接口技术 7.中断向量表(已看)ppt课件

微机原理与接口技术 7.中断向量表(已看)ppt课件
中断恳求 中断效力存放器ISR 保管一切正在效力的中断源,某位=1表示对应的IRi中断正在被
效力 中断屏蔽存放器IMR 存放中断屏蔽字,某位=1表示对应的IRi输入被屏蔽 中断优先权判别电路 确定能否向CPU发出中断恳求,中断呼应时确定ISR的哪位应置
位及把相应中断的类型码放到数据总线上
三种EOI命令 自动EOI〔AEOI〕 ——〔自动EOI方式〕 非指定EOI〔NSEOI〕——〔正常EOI方式〕 指定EOI〔SEOI〕 ——〔特殊EOI方式〕
自动EOI方式:在第2个INTA终了时,由8259A使 ISRi自动复位;
因不保管当前正在效力的中断的形状,故AEOI不能 用于中断嵌套方式
期INTA,要求PIC在第2个中断呼应总线周期把中断 类型码 n 放到数据总线上,供CPU读入。
中断优先级
背景:系统有多个终端,而CPU同一个时 辰只能呼应一个中断,为理处理这个 矛盾应按中断的轻重缓急来确定中断 的优先级别.
8088/8086系统中各中断的优先级
优先级从高到低顺序如下:

软件中断、内部中断 (除单步中断外)
级连电路系衔统总线接AB、D方B、CB 法
最多1主8从 64个中断源
INTA A0 CS D0-D7 RD WR INT
8259A CAS0
(从片1)
CAS1 CAS2
SP/EN IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0
INTA A0 CS D0-D7 RD WR INT
8259A CAS0
特殊屏蔽方式:
提供了允许较低优先级的中断可以得到呼应的特 殊手段。
原理:假定当前正在处置IR6,先进入特殊屏蔽 方式,然后设置IM6=1。这时,除IR6外的一切 中断恳求均能得到呼应。

mc9s12系列单片机学习总结

mc9s12系列单片机学习总结

控制寄存器( 脉冲累加器 A 控制寄存器(PACTL) )PAEN: 脉冲累加器系统使能位,与 TEN 相互独立; 脉冲累加器系统使能位, 相互独立; 0 系统使能禁止; 系统使能禁止; 1 系统使能开启;此时,8 位的脉冲累加器 PAC3、PAC2 禁止 系统使能开启;此时, 、 PAMOD: 脉冲累加器模式控制位; 脉冲累加器模式控制位; 0 事件计数模式 1 门限时间累加模式,这时 TEN 必须为 1,如果 TEN 为 0 的话,工作模式只能在 门限时间累加模式, 的话, , 事件计数模式下, 事件计数模式下,且没有 ECLK/64 的时钟 PEDGE: 脉冲累加器有效边沿设定位 1 ○PAMOD = 0 时: 0 对脉冲输入引脚(PT7/PAI)下降沿计数 对脉冲输入引脚( ) 1 对脉冲输入引脚(PT7/PAI)上升沿计数 对脉冲输入引脚( ) 2 ○PAMOD = 1 时: 0 当脉冲输入引脚(PT7/PAI)为高电平时,允许 ECLK/64 的时钟脉冲进入 当脉冲输入引脚( )为高电平时, 脉冲累加计时器, 脉冲累加计时器,并在随后的输入引脚下降沿置位 PAIF 1 当脉冲输入引脚(PT7/PAI)为低电平时,允许 ECLK/64 的时钟脉冲进入 当脉冲输入引脚( )为低电平时, 脉冲累加计时器, 脉冲累加计时器,并在随后的输入引脚下降沿置位 PAIF CLK1、CLK0: 定时器模块时钟选择位 、 如果脉冲累加器的( ),则来自定时器的预分频时钟作为时钟源。

如果脉冲累加器的(PAEN:0),则来自定时器的预分频时钟作为时钟源。

写入这 ),则来自定时器的预分频时钟作为时钟源 两位数后,立即生效。

具体如下图: 两位数后,立即生效。

具体如下图:PAVOI: 脉冲累加器溢出中断允许位 0 禁止 1 PAVOF 置位时申请中断 PAI : 脉冲累加器输入中断允许位 0 禁止 1 PAIF 置位时申请中断计时器系统控制寄存器( 计时器系统控制寄存器(TSCR2) )TOI: 计时器溢出中断使能 0 中断被禁止 1 当 TOF 标志被置位时发出硬件中断请求 TCRE: 始终计数器复位使能0 计数器复位禁止,计数器自由计数 计数器复位禁止, 1 通道 7 成功输出比较后 计数器将被复位 PR0、PR1、PR2: 计数器预分频选择 、 、 新设定的分频因子不会立即起作用, 新设定的分频因子不会立即起作用, 直到下一个触发沿来到那里所有分配计数器均 为零。

mc9s12dg128中断程序写法

mc9s12dg128中断程序写法

mc9s12dg128中断程序写法探讨学习S12的朋友可以和我一起探讨! MC9SDG128B的中断编程主要有两种方式:第一种是使用符号“TRAP_PROC”,TRAP_PROC 提示编译器下面的函数是中断服务例程。

编译器会用一个特殊的中断返回指令来结束这个函数(对大多数处理器来说,一般是RTI指令).以下是采用TRAP_PROC符号编写的中断服务程序:#include /* common defines and macros */#include /* derivative information */#pragma LINK_INFO DERIVATIVE "mc9s12dg128b" int intcount = 0;void timer_init(void) {TSCR2_PR0 = 1; //prescale factor is 128 TSCR2_PR1 = 1;TSCR2_PR2 = 1; TSCR2_TOI = 1; //overflow enable TFLG2_TOF = 1;TSCR1_TEN = 1; //timer enable }#pragma CODE_SEG NON_BANKED#pragma TRAP_PROC void timer_interrupt_handle(void){intcount++;TFLG2_TOF = 1; };#pragma CODE_SEG DEFAULTvoid main(void){ EnableInterrupts;timer_init();for(;;){}{}}一旦中断服务函数写好了,你必须把中断服务例程和中断向量表联系起来,这通过初始化中断向量表来实现,你可以通过下面两种方法来初始化中断向量表:第一种是在PRM文件中,使用“VECTOR ADDRESS”或“VECTOR”命令。

连接器提供两个命令来初始化中断向量表:VECTOR ADDRESS 或 VECTOR,你使用VECTOR ADDRESS 命令将中断服务例程的地址写到中断向量表里。

软硬中断以及中断向量表

软硬中断以及中断向量表

软硬中断以及中断向量表概述中断(英语:Interrupt)是指处理器接收到来⾃硬件或软件的信号,提⽰发⽣了某个事件,应该被处理器注意,这种情况就称为中断。

通常,在接收到来⾃外围硬件(相对于中央处理器和内存)的异步信号,或来⾃软件的同步信号之后,处理器将会进⾏相应的硬件/软件处理。

发出这样的信号称为进⾏中断请求(interrupt request,IRQ)。

硬件中断导致处理器通过⼀个运⾏信息切换(context switch,也叫上下⽂切换)来保存执⾏状态(以程序计数器和程序状态字等寄存器信息为主);软件中断则通常作为CPU指令集中的⼀个指令,以可编程的⽅式直接指⽰这种运⾏信息切换,并将处理导向⼀段中断处理代码。

中断在计算机多任务处理,尤其是即时系统中尤为有⽤。

这样的系统,包括运⾏于其上的操作系统,也被称为“中断驱动的”(interrupt-driven)。

中断是⽤以提⾼计算机⼯作效率、增强计算机功能的⼀项重要技术。

最初引⼊硬件中断,只是出于性能上的考量。

如果计算机系统没有中断,则处理器与外部设备通信时,它必须在向该设备发出指令后进⾏忙等待(Busy waiting),反复轮询该设备是否完成了动作并返回结果。

这就造成了⼤量处理器周期被浪费。

引⼊中断以后,当处理器发出设备请求后就可以⽴即返回以处理其他任务,⽽当设备完成动作后,发送中断信号给处理器,后者就可以再回过头获取处理结果。

这样,在设备进⾏处理的周期内,处理器可以执⾏其他⼀些有意义的⼯作,⽽只付出⼀些很⼩的切换所引发的时间代价。

后来被⽤于CPU外部与内部紧急事件的处理、机器故障的处理、时间控制等多个⽅⾯,并产⽣通过软件⽅式进⼊中断处理(软中断)的概念。

在硬件实现上,中断可以是⼀个包含控制线路的独⽴系统,也可以被集成进存储器⼦系统中。

对于前者,在IBM个⼈机上,⼴泛使⽤(Programmable Interrupt Controller,PIC)来负责中断响应和处理。

MC9S12XS128之实时中断RTI

MC9S12XS128之实时中断RTI

有些东西看过了之后不及时巩固的话,过一段时间就忘得差不多了,前段时间看了实时中断RTI,趁着还有一些余热,赶紧记下来。

之前一些以为实时中断只有在运用嵌入式实时操作系统时才会用到的,觉得是很高级的东西,所以一直没信心,不敢去看。

实时中断其实并不复杂,简单地说,就是一个定时模块,定时溢出,产生中断。

功能跟PIT差不多,都能用定时。

不过既然有了PIT可以定时了,为什么还要多此一举弄多一个实时中断RTI 呢?因为,PIT 时钟电路每固定一段时间都必须更新一次时间信息,这个更新的责任就落在MCU身上了。

对于那种比较繁重的系统而言,“进行一次更新”会耗费许多的资源。

RTI 专注于记时工作,使MCU可以空出来处理其它的工作。

外部晶振时钟可以直接“驱动”RTI。

RTI定时不会很准,因为它没有经过复杂的时钟处理,然后经过性价比极高的配置之后,可以变为a*2^b倍数。

因为a*2^b不能是任意数整数,不能配成你想要的任何频率,所以说RTI定时不会很准,不过它用起来还是很灵活的。

现在说一下RTI 是如何配置的:第一步,实时中断RTI 在默认情况下是关闭的,怎样才能让RTI 工作呢?这就用到实时中断控制寄存器RTICTL 了。

RTICTL是一个八位寄存器,第七位没定义,只用到低七位[RTR6~RTR0]。

当RTR[6:4]=000时,实时中断被禁止,只要当RTR[6:4] 不全为0时,实时中断就开启了。

同时实时中断的溢出周期也是由该寄存器配置的。

RTI 的参考时间是外部晶振的时钟OSCCLK。

故,实时中断的溢出时钟周期=(RTR[3:0]+1) x (2的(RTR[6:4] + 9)次方)/OSCCLK。

第二步,要想在实时中断溢出时产生一个中断,则用到寄存器CRGINT 了。

当CRGINT_RTIE=1时,每个周期结束时,就会产生一个中断。

只要配置好上面说的两个寄存器,再写上相应的中断函数,实时中断就可以用了。

顺便提一下,实时中断RTI 的中断号是7 。

MC9S12DG128的结构与工作原理

MC9S12DG128的结构与工作原理
❖ Z——0标志(Zero Flag) 当运算结果为0时,Z=1;结果不为0时,Z=0。
❖ N——符号位(负标志) (Negative Flag) 当运算结果为负时,N=1,否则,N=0。
❖ H——辅助进位(半进位)标志(Half-carry Flag) 在加法过程中,若累加器A中的D3向D4位产生进位,H=1;否则,H=0。
❖ MC9S12DG128的内部结构 ❖ MC9S12DG128引脚功能 ❖ MC9S12DG128的运行模式 ❖ MC9S12DG128的存储器组织
1
概述
➢ MC9S12DG128的内核是16位中央处理单元CPU12, 有29个独立的数字I/O口(A、B、K和E),20个独 立的数字I/O口(H、P、J)具有中断和唤醒功能。
图2.7堆栈的类型
13
2.1 MC9S12DG128的内部结构
2.1.1 CPU12内核(Star Core)
❖ 向上生长型堆栈——栈底占用较低地址,栈顶占用较高地址。 ➢ 数据压入堆栈时,SP的内容自动加1,作为本次进栈的地址,然后再存
入信息。随着数据的存入,SP的值越来越大。数据从堆栈弹出后,SP的 内容自动减1。 ❖ 向下生长型堆栈——栈底占用较高地址,栈顶占用较低地址。 ➢ CPU12的堆栈属于向下生长型,将一个字节数据压入堆栈时,SP自动减 1。从堆栈中弹出一个字节数据时,SP自动加1。若操作数为双字节,则 SP每次加2或减2。因此,随着数据的存入,SP的值越来越小。 ➢ SP总是指向最后压入堆栈的一个字节数据,称为实栈顶。压栈操作时, 先调整指针(减1或减2),后保存数据。初始化时,一般将SP指向与栈底 相邻的单元,它不属于栈底,以此表示堆栈为空。
❖ 影响SP内容的指令有加载、目的操作数为SP的寄存器传送指令、压栈、 退栈、加减1、中断和子程序调用等。

MC9S12XS128 中 PIT (周期中断定时器) 的使用

MC9S12XS128 中 PIT (周期中断定时器) 的使用
_asm(nop);
while(!(CRGFLG_LOCK==1)); //when pll is steady ,then use it;
CLKSEL_PLLSEL =1; //engage PLL to system;
}
/*-----------------PIT0初始化------------------*/
那么如何通过编程来实现 PIT 来定时呢?在 数据手册的 363 页给出了 汇编代码的实现,当初我使用的时候已经把汇编转化成 C 语言了。
下面简单地来说下 PIT 的编程过程->:
1、8-Bit Micro Timer 0 跟 8-Bit Micro Timer 1 从 Bus Clock 里面获取时钟信号,通过编程 PITMTLDX 这
在 MC9S12XS128 这款单片机中 没有像 51 或者 AVR 那样的递减计数器,即在一个计时计数器中装一个数,单片机 让这个数在一定的时钟周期性 减 1 ,直道这个数减到 0 为止来实现多少时间的定时。当寄存器的值变为0时又重新装入数来再计时,装数有自动装载和手动装载两种,学过 51 跟 AVR 的朋友应该明白这两种模式。虽然 MC9S12XS128 这款单片机没有这样的定时器,但是它提供了 PIT 定时器,即 Periodic Interrupt Timer (S12PIT24B4CV1),即周期性中断定时器。PIT 分为 PIT0、PIT1、PIT2、PIT3 ,它们均是以中断的方式来实现定时的,具体能够实现多大范围的定时可参考 datasheet . PIT0、PIT1、PIT2、PIT3 对应的中断向量号分别为 66、67、68、69。还要注意 PIT 是没有外部引脚的。
void Pit0_Init(void)

微机原理与接口技术吉海彦主编机械工业出版社课后习题答案

微机原理与接口技术吉海彦主编机械工业出版社课后习题答案

第一章:答案: 1.1 人们通常把运算器和控制器看做一个整体称为中央处理器。

随着大规模、超大规模集成电路技术的发展,在微型计算机中已将CPU 继承为一个芯片,称为微处理器,通常也称微处理机!微型计算机是以微处理器为核心,加上由大规模集成电路制作的存储芯片(RAM和ROM )、 i/o 接口和系统总线组成的,该层次即使已安装了CPU 和内存的条的主板。

微型计算机系统是以微型计算机为核心,在配以相应的外部设备、电源、辅助电路和控制微型计算机工作的软件系统而构成的完整计算机系统。

三者的相互关系:单纯的微处理器不是计算机,单纯的微型计算机也不是完整的微型计算机系统,他们都不能独立工作,只有计算机系统才是完整的数据处理系统,才具有实用意义。

1.2 微型计算机是由硬件系统和软件系统组成的整体。

硬件系统是指计算机实际的物理设备,它包括运算器,控制器,存储器,输入接口和输出接口这五个基本部分和相应的外部设备。

运算器是完成数值运算和逻辑运算的部件;控制器是是存储器、运算器以及输入输出设备有序工作的设备;寄存器组是在需要重复使用某些操作数或者中间结果时,就可以将他们暂时存放在寄存器里,避免对存储器的频繁访问,从而缩短指令长度和指令执行时间,加快CPU 的运算速度,同时也给编程带来方便;存储器是保存二进制信息,而且能快速对信息进行读写处理,分为外存和内存;软件系统:一般是指在计算机上运行的各类程序及其相应的文档的集合,硬件系统只有在软件系统的支撑下才能发挥其对数据的处理能力。

1.3 总线是一组导线,用来在微机的各部件之间提供数据、地址和控制信息的传输通道。

总线分为三类 1、地址总线 2、数据总线 3、控制总线1.4 微型计算机没执行一条指令都是分为三个阶段:取指令、分析指令和执行指令取指令阶段的任务是:根据程序计数器(PC)中的值从存储器里读出现行指令,送到指令寄存器 IR ,然后 PC 自动加以,指向下一条指令地址。

中断向量表

中断向量表
#define VectorNumber_VReserved65 65 //
#define VectorNumber_Vapi 64 //
#define VectorNumber_Vlvi 63 //
#define VectorNumber_Vsi 119 //
#define VectorNumber_Vsyscall 118 //
#define VectorNumber_VReserved118 117 //
#define VectorNumber_VReserved102 101 //
#define VectorNumber_VReserved101 100 //
#define VectorNumber_VReserved100 99 //
#define VectorNumber_VReserved117 116 //
#define VectorNumber_VReserved116 115 //
#define VectorNumber_VReserved115 114 //
#define VectorNumber_Vportp 56 //端口P中断
#define VectorNumber_VReserved55 55 //CAN4发送消息
#define VectorNumber_VReserved54 54 //CAN4接收消息
#define VectorNumber_VReserved53 53 //CAN4错误
#define VectorNumber_VReserved52 52 //CAN4唤醒
#define VectorNumber_VReserved51 51 //

中断向量表——精选推荐

中断向量表——精选推荐

中断向量表中断向量地址⼀览表⼀、8088中断向量0-3 4-7 8-B C-F 10-13 14-17 18-1F123456,7除以零单步(⽤于DEBUG)⾮屏蔽中断断点指令溢出打印屏幕保留⼆、8259中断向量20-23 24-27 28-2B 2C-2F 30-33 34-37 38-3B 3C-3F 89ABCDEF定时器键盘彩⾊/图形异步通讯(secondary)异步通讯(primary)硬磁盘软磁盘并⾏打印机三、BIOS中断40-43 44-47 48-4B 4C-4F 50-53 54-57 58-5B 5C-5F 60-63 64-67 68-6B 101112131415161718191A屏幕显⽰设备检验测定存储器容量磁盘I/O串⾏通讯⼝I/O盒式磁带I/O键盘输⼊打印机输出BASIC⼊⼝代码引导装⼊程序⽇时钟四、提供给⽤户的中断6C-6F 70-731B1CCtrl-Break控制的软中断定时器控制的软中断五、数据表指针74-77 78-7B 7C-7F 1D1E1F显⽰器参量表软盘参数表图形表六、中断80-83 84-87 88-8B 8C-8F 20212223程序结束系统功能调⽤结束退出Ctrl-Break退出90-93 94-97 98-9B 9C-9F A0-BB BC-BF C0-FF2425262728-2E2F30-3F严重错误处理绝对磁盘读功能绝对磁盘写驻留退出DOS保留打印机DOS保留七、BASIC中断100-17F 180-19F 1A0-1FF 200-217 218-3C3 3C4-3FF 40-5F60-6768-7F80-8586-F0F1-FF保留⽤户软中断保留由BASIC保留BASIC中断保留DOS功能调⽤* AH=0-2E适⽤DOS1.0以上版本;*AH=2F-57适⽤DOS2.0以上版本;*AH=58-62适⽤DOS3.0以上版本.BIOS中断INT AH功能调⽤参数返回参数100设置显⽰⽅式AL=00 40*25⿊⽩⽅式=01 40*25彩⾊⽅式=02 80*25⿊⽩⽅式=03 80*25彩⾊⽅式=04 320*200彩⾊图形⽅式=05 320*200⿊⽩图形⽅式=06 640*200⿊⽩图形⽅式=07 80*25单⾊⽂本⽅式=08 160*200 16⾊图形=09 320*200 16⾊图形=0A 640*200 16⾊图形=0B 保留(EGA)=0C 保留(EGA)=0D 320*200彩⾊图形(EGA)=0E 640*200彩⾊图形(EGA)=0F 640*350⿊⽩图形(EGA)=10 640*350彩⾊图形(EGA)=11 640*480单⾊图形(EGA)=12 640*480 16⾊图形(EGA)=13 320*200 256⾊图形(EGA)=40 80*30彩⾊⽂本(CGE400)=41 80*50彩⾊⽂本(CGE400)=42 640*400彩⾊⽂本(CGE400)101置光标类型(CH)0-3=光标起始⾏(CL)0-3=光标结束⾏102置光标位置BH=页号,DH,DL=⾏,列103读光标位置BH=页号CH=光标起始⾏,DH,DL=⾏,列104读光笔位置AH=0光笔未触发,=1光笔触发CH=象素⾏, BX=象素列,DH=字符⾏,DL=字符列105置显⽰页AL=页号106屏幕初始化或上卷AL=上卷⾏数,AL=0整个窗⼝空⽩BH=卷⼊⾏属性,CH=左上⾓⾏号,CL=左上⾓列号,CH=右下⾓⾏号,DL=右下⾓列号107屏幕初始化或下卷AL=下卷⾏数,AL=0整个窗⼝空⽩BH=卷⼊⾏属性,CH=左上⾓⾏号,CL=左上⾓列号,DH=右下⾓⾏号,DL=右下⾓列号108读光标位置的字符和属性BH=显⽰页AH=属性,AL=字符109在光标位置显⽰字符及其属性BH=显⽰页,AL=字符,BL=属性CX=字符重复次数10A在光标位置显⽰字符BH=显⽰页,AL=字符CX=字符重复次数10B置彩⾊调板(320*200图形)BH=彩⾊调板IDBL=和ID配套使⽤的颜⾊10C写象素DX=⾏(0-199) CX=列(0-639)AL=象素值10D读象素DX=⾏(0-199) CX=列(0-639)AL=象素值10E显⽰字符(光标前移)AL=字符,BL=前景⾊10F取当前显⽰⽅式AH=字符列数,AL=显⽰⽅式1013显⽰字符串(适⽤AT)ES:BP=串地址,CX=串长度DH,DL=起始⾏,列,BH=页号AL=0,BL=属性串:char,char...AL=1,BL=属性串:char,char...AL=2 光标返回起始位置 光标跟随移动光标返回起始位置AL=2串:char,attr,char, attr,... AL=3串:char,attr,char,attr,...光标返回起始位置 光标跟随移动11设备检验AX=返回值bit0=1,配有磁盘bit1=1,80287协处理器bit4,5=01,40*25BW(彩⾊板)=10,80*25BW(彩⾊板)=11,80*25BW(⿊⽩板)bit6,7=软盘驱动器号bit9,10,11= RS-232板号bit12=游戏适配器bit13=串⾏打印机bit14,15=打印机号12测定存储器容量AX=字节数(KB)130软盘系统复位131读软盘状态AL=状态字节132读磁盘AL=扇区数CH,CL=磁道号,扇区号DH,DL=磁头号,驱动器号ES:BX=数据缓冲区地址读成功:AH=0AL=读取的扇区数读失败:AH=出错代码133写磁盘同上写成功:AH=0 AL=写⼊的扇区数写失败: AH=出错代码134检验磁盘扇区同上(ES:BX不设置)成功:AH=0 AL=检验的扇区数失败:AH=出错代码135格式化盘磁道ES:BX=磁道地址成功:AH=0 失败:AH=出错代码140初始化串⾏通讯⼝AL= 初始化参数DX=通讯⼝号(0,1)AH = 通讯⼝状态AL = 调制解调器状态141向串⾏通讯⼝写字符AL=字符,DX=通讯⼝号(0,1)写成功:(AH)7=0写失败:(AH)7=1(AH)0-5=通讯⼝状态142从串⾏通讯⼝读字符DX=通讯⼝号(0,1)读成功:(AH)7=0,(AL)=字符读失败:(AH)7=1,(AH)0-6=通讯⼝状态143取通讯⼝状态DX=通讯⼝号(0,1)AH=通讯⼝状态AL=调制解调器状态150启动盒式磁带马达151停⽌盒式磁带马达152磁带分块读ES:BX=数据转输区地址AH=状态字节CX=字节数AH=00读成功,=01冗余检验错=02⽆数据传输,=04⽆引导,=80⾮法命令AH=状态字节(同上)153磁带分块写DS:BX=数据传输区地址CX=字节数160从键盘读字符AL=字符码,AH=扫描码161读键盘缓冲区字符ZF=0 AL=字符码,AH=扫描码ZF=1 缓冲区空162取键盘状态字节AL=键盘状态字节170打印字符,回送状态字节AL=字符,DX=打印机号AH=打印机状态字节DX=打印机号AH=打印机状态字节171初始化打印机,回送状态字节172取状态字节DX=打印机号AH=打印机状态字节1A0读时钟CH:CL=时:分DH:DL=秒:1/100秒1A1置时钟CH:CL=时:分,DH:DL=秒:1/100秒1A2读实时钟CH:CL=时:分(BCD)DH:DL=秒:1/100秒(BCD)1A6置报警时间CH:CL=时:分(BCD)DH:DL=秒:1/100秒(BCD)1A7清除报警。

9s12单片机-第六章 中断系统

9s12单片机-第六章 中断系统

中断系统的功能
• 能实现: 中断响应:CPU能够知道 中断处理:能够找到相应子程序 中断返回:保证机制 中断屏蔽:可以响应,也可以不响应 • 能实现中断优先级排队:谁先谁后 • 能实现中断嵌套:中断中的中断
6.2异常
S12系列单片机的中断属于异常情况处理的一部分。
异常
复位 1.上电复位 2.外部复位 3.看门狗复位 4.时钟监视复位
I
I I I
TIE (C0I)
TIE (C1I) TIE (C2I) TIE (C3I)
$EE
$EC $EA $E8
$FFE6,$FFE7
$FFE4,$FFE5 $FFE2,$FFE3
捕捉定时通道4
捕捉定时通道5 捕捉定时通道6
I
I I
TIE (C4I)
TIE (C5I) TIE (C6I)
$E6
$E4 $E2
(3)看门狗复位(COP,Computer Operating Properly) 1、当应用程序没有按照预期执行时,COP 看门狗会 强制系统复位。是一项重要的安全保障功能之一。 2、COP系统包含一个用户设置的倒计数定时器,一旦 定时器过期,则触发一个系统复位。 3、为了防止复位发生,通过软件指令不间断的每隔 一段时间就将该定时器计数值赋值为初始值。如果 正常运行的话,将不会复位。 4、可以开启看门狗功能,也可不用,一般不用。
$FFFF
6.3中断优先级与中断嵌套
中断打断中断
中断优先级:
当多个中断等待执行时,中断优先级决定哪一个中断首先
被执行。 中断优先级顺序: ① RESET引脚和上电复位 ② 时钟监视复位 ③ COP复位 ④指令陷阱和软件中断 ⑤ X位中断 ⑥ I 位可屏蔽中断
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#define Vflashfd 0xFFBAU// 34 FLASH错误检测
#define VReserved33 0xFFBCU// 33 保留
#define VReserved32 0xFFBEU// 32 保留
#define VReserved43 0xFFA8U// 43
#define VReserved42 0xFFAAU// 42
#define VReserved41 0xFFACU// 41
#define Vpwmesdn 0xFF8CU// 57 PWM紧急事件关闭
#define Vportp 0xFF8EU// 56 PORTP口中断
#define VReserved55 0xFF90U// 55 保留
/**************** interrupt vector table ****************/
#define Vsi 0xFF10U// 120 伪中断
#define Vsyscall 0xFF12U// 119 系统呼叫中断
#define VReserved76 0xFF66U
#define VReserved75 0xFF68U
#define VReserved74 0xFF6AU
#define VReserved73 0xFF6CU
#define VReserved111 0xFF22U
#define VReserved110 0xFF24U
#define VReserved109 0xFF26U
#define VReserved108 0xFF28U
#define VReserved93 0xFF46U
#define VReserved92 0xFF48U
#define VReserved91 0xFF4AU
#define VReserved90 0xFF4CU
#define VReserved31 0xFFC0U// 31 保留
#define VReserved30 0xFFC2U// 30 保留
#define Vcrgscm 0xFFC4U// 29 CRG自时钟模式
#define Vpit0 0xFF7AU// 66 PIT通道0超时中断
#define Vhti 0xFF7CU// 65 高温中断
#define Vapi 0xFF7EU// 64 独立周期中断
#define VReserved72 0xFF6EU
#define VReserved71 0xFF70U
#define VReserved70 0xFF72U// 70 保留
#define Vpit3 0xFF74U// 69 PIT通道3超时中断
#define Vpit2 0xFF76U// 68 PIT通道2超时中断
#define Vpit1 0xFF78U// 67 PIT通道1超时中断
#define VReserved60 0xFF86U
#define VReserved59 0xFF88U
#define VReserved58 0xFF8AU// 58 保留
#define VReserved46 0xFFA2U
#define VReserved45 0xFFA4U// 45
#define VReserved44 0xFFA6U// 44
#define VReserved85 0xFF56U
#define VReserved84 0xFF58U
#define VReserved83 0xFF5AU
#define VReserved82 0xFF5CU
#define VReserved107 0xFF2AU
#define VReserved106 0xFF2CU
#define VReserved105 0xFF2EU
#define VReserved104 0xFF30U
#define VReserved81 0xFF5EU
#define VReserved79 0xFF60U
#define VReserved78 0xFF62U
#define VReserved77 0xFF64U
#define VReserved40 0xFFAEU// 40 保留
#define Vcan0tx 0xFFB0U// 39 CAN0发送
#define Vcan0rx 0xFFB2U// 38 CAN0接收
#define VReserved50 0xFF9AU
#define VReserved49 0xFF9CU
#define VReserved48 0xFF9EU
#define VReserved47 0xFFA0U
#define Vlvi 0xFF80U// 63 低电压中断
#define VReserved62 0xFF82U// 62 保留
#define VReserved61 0xFF84U
#define VReserved115 0xFF1AU
#define VReserved114 0xFF1CU
#define VReserved113 0xFF1EU
#define VReserved112 0xFF20U
#define VReserved89 0xFF4EU
#define VReserved88 0xFF50U
#define VReserved87 0xFF52U
#define VReserved86 0xFF54U
#define VReserved99 0xFF3AU
#define VReserved98 0xFF3CU// 98 保留
#define Vatd0compare 0xFF3EU// 97 ATD0比较中断
#define VReserved103 0xFF32U
#define VReserved102 0xFF34U
#define VReserved101 0xFF36U
#define VReserved100 0xFF38U
#define VReserved96 0xFF40U// 96 保留
#define VReserved95 0xFF42U
#define VReserved94 0xFF44U
#define VReserved54 0xFF92U
#define VReserved53 0xFF94U
#define VReserved52 0xFF96U
#define VReserved51 0xFபைடு நூலகம்98U
#define Vcrgplllck 0xFFC6U// 28 CRGPLL锁
#define VReserved27 0xFFC8U// 27 保留
#define VReserved26 0xFFCAU// 26 保留
#define VReserved118 0xFF14U// 118 保留
#define VReserved117 0xFF16U
#define VReserved116 0xFF18U
#define Vporth 0xFFCCU// 25 PORTH口中断
#define Vcan0err 0xFFB4U// 37 CAN0错误
#define Vcan0wkup 0xFFB6U// 36 CAN0唤醒
#define Vflash 0xFFB8U// 35 FLASH
相关文档
最新文档