利用飞思卡尔S12X单片机的XGATE操控LED灯 - 图文

更新时间:2024-05-12 05:37:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

利用飞思卡尔S12X单片机的XGATE操控LED灯

实飞思卡尔在08年就已经推出了HCS12X系列的16位MCU,而这款单片机的典型特点就是采用了双核架构(MPCore),增加了一个RISC核的高效协处理器(英文名叫co-processor,呵呵,潮一把)——XGATE模块,专门负责处理中断任务,也就是说它的使命就是将主核CPU从执行耗时的中断处理程序的工作中解放出来,而专注于执行与应用相关的任务,这种强大的组合实现了最佳的实时事件处理,而且由于XGATE采用的是RISC指令核,代码高效且主频可以达到主核的2倍,真是牛逼啊,呵呵。

简单的介绍完毕,如果想进一步深入研究的话建议可以买本邵贝贝老师写的《嵌入式系统中的双核技术》里面对XGATE介绍的还是挺细致的,然后再结合HCS12X系列的datasheet(建议到FSL官网上下一个,本文附件为Xgate的部分中文说明手册需结合datasheet)。其实XGATE简单的用起来的话还是挺容易的,下面就以MC9S12XDP512这款片子为例通过一个简单的IO中断改变LED亮灭的例程(IO中断采用PTH口,LED采用上拉到PORTA口的方式)说说使用XGATE处理中断的完整流程,为了生动些,就主要以图为主了(开发环境采用CW5.0):

(1)建立工程,主要注意以下三步就成,其他均默认即可,其中第三幅图建议选择XGATE IN RAM,提高code 执行速度。

(2)建好的例程里,其实在XGATE模块里是默认加了一个软件中断的

SoftwareTrigger0_Handler,按照设置它的方法设置用户定义的中断就可以,不过这需要一定基础,咱还是一步步来吧,心急吃不了热豆腐啊,呵呵。在工程栏里的source文件组下,main.c为主函数文件(这里需要对XGATE进行一下设置);xgate.cxgate文件为XGATE的主文件,在其中编写我们需要的中断服务程序;xgate.h文件是对XGATE用到的一些声明了,下面就开始以PTH口中断管理PORTA口的LED亮灭为例一步一步的来了(注意我写的中文注释部分,也就是需要添加的地儿): 在main.c里

在xgate.cxgate文件里,首先需要添加#include 头文件,应为要用到PORTA和H口得定义,这个一定不要忘了。

constXGATE_TableEntryXGATE_VectorTable[] = {

.......................................................此处又要省略N个声明,只看下面的H口通道设置

........................................................再省略,呵呵 }

在xgate.h文件里

这样第一个XGATE模块的例程就可以执行了,不过记得这只是个非常简单的例子,其实XGATE的用途很广,性能强大,上面的例子只能算是小试牛刀了。

本文来源:https://www.bwwdw.com/article/8a6g.html

Top