嵌入式实验
- 格式:docx
- 大小:112.46 KB
- 文档页数:18
嵌入式系统实验报告引言嵌入式系统作为一种广泛应用于各行各业的计算机系统,其本身具有一定的难度与挑战。
本实验报告将围绕嵌入式系统的设计、开发以及应用展开讨论,旨在总结并分享在实验中所获得的经验与知识。
一. 实验背景嵌入式系统是指以特定功能为目标的计算机系统,其设计与开发过程相较于传统的计算机系统更为复杂和精细。
本次实验的主要目标是通过设计一个基于嵌入式系统的智能家居控制器,来探索嵌入式系统的应用与实践。
二. 实验内容2.1 硬件设计嵌入式系统的硬件设计是整个实验的基础,其合理性与稳定性直接影响系统的性能和可靠性。
在本次实验中,我们选择了一块主频为xx的处理器作为核心,配备了丰富的外设接口,如GPIO、串口等。
我们还为系统增加了一块液晶显示屏和一组按键,以实现简单的用户交互。
2.2 软件开发在硬件设计完成后,我们开始进行软件开发。
首先,我们需要选择一个合适的操作系统作为嵌入式系统的基础。
针对本次实验,我们选择了xx操作系统,其具备较强的实时性和稳定性,能够满足我们对系统性能的要求。
接着,我们进行了嵌入式系统的驱动程序开发。
通过编写各个外设的驱动程序,我们实现了与液晶显示屏和按键的交互,并将其与处理器进行了适当的接口配置。
另外,我们还开发了嵌入式系统的应用程序。
通过编写智能家居控制器的代码,我们成功实现了对家居设备的远程控制和监测。
用户可以通过液晶显示屏和按键进行交互,实现对家居设备的开关、调节和状态查看等操作。
三. 实验结果与分析经过实验测试,我们发现嵌入式系统在智能家居领域的应用具有较高的可行性与实用性。
通过嵌入式系统的控制,用户可以方便地实现对家居设备的远程操控,提升了家居智能化的程度。
同时,嵌入式系统的实时性和稳定性使得智能家居控制器具备了较高的安全性和可靠性。
然而,在实验过程中我们也遇到了一些挑战。
其中,系统的驱动程序开发是较为复杂的一环,需要仔细理解硬件接口和协议,并进行合理的配置。
此外,系统的稳定性和功耗管理也是需要重点关注的问题。
嵌入式实验报告本次实验我们使用了一款基于ARM Cortex-M3处理器的开发板,开发板上运行的是嵌入式操作系统UCOS-II。
我们通过这个实验了解了嵌入式系统的工作流程,以及如何使用开发板进行程序编程和调试。
实验内容分为两个部分:第一个部分是编写一个简单的LED 闪烁的程序,第二个部分则是使用串口通信,将开发板和PC机进行连接,并通过PC机上的终端程序,实现与开发板之间的通信。
第一部分:LED闪烁程序在这个部分,我们首先学习了如何配置开发板上的GPIO(Generic Input/Output)接口,以控制LED的亮灭。
然后,我们编写了一个简单的程序,将LED的亮度不断地切换,使其看起来像在闪烁。
通过这个实验,我们学会了如何使用开发板上的寄存器,设置和读取相关的控制寄存器信息。
在程序编写的过程中,我们还学习了如何进行代码调试,以及如何使用JLink等开发工具对程序进行下载和烧录。
第二部分:串口通信在这个部分,我们使用了开发板上的UART(Universal Asynchronous Receiver/Transmitter)接口,将开发板和PC机进行连接。
之后,我们在PC机上安装了一个终端程序(TeraTerm),通过串口发送数据到开发板上,并将开发板返回的数据显示在终端窗口中。
通过这个实验,我们学习了如何使用UART接口进行数据的收发。
我们还学习了UCOS-II操作系统下的信号量使用方法,以及在多任务环境下,如何实现任务间的通信和同步。
总结在这个实验中,我们对嵌入式开发的基础知识进行了全面深入的了解,并通过实践的方式完成了两项实际应用场景的设计和实现。
我们大大提高了自己的嵌入式开发技能,同时也体验到了从开发到调试、测试、验证的整个流程,对我们日后的开发工作具有非常重要的启示意义。
嵌入式报告实验报告1. 引言嵌入式系统作为一种特殊的计算机系统,应用广泛且日益重要。
嵌入式报告实验是对嵌入式系统进行实际操作和测试的过程,旨在验证嵌入式系统的功能和性能,以评估其是否满足设计要求。
本报告将详细介绍嵌入式报告实验的设计与实施,并对实验结果进行分析与总结。
2. 实验设计2.1 实验目的嵌入式报告实验的目的是通过设计和实施一系列测试来评估嵌入式系统的性能和功能。
具体目标包括但不限于:验证系统的实时性、稳定性和可靠性;测试系统的各种输入输出功能;评估系统对异常情况的处理能力。
2.2 实验环境实验使用的嵌入式系统硬件为XX处理器,集成了XX模块和XX接口。
软件方面,使用XX嵌入式操作系统和XX开发工具进行系统开发和测试。
2.3 实验步骤1) 配置硬件环境:将嵌入式系统与外部设备连接,确保硬件环境正常。
2) 编写测试程序:根据实验目标,编写相应的测试程序,包括输入输出测试、性能测试和异常情况测试等。
3) 软件调试:通过软件调试工具对测试程序进行调试,确保程序逻辑正确。
4) 硬件调试:通过硬件调试工具对嵌入式系统进行调试,确保硬件模块正常工作。
5) 实验运行:将测试程序下载到嵌入式系统中,运行测试程序并记录实验数据。
6) 数据分析与总结:对实验数据进行分析和总结,评估嵌入式系统的性能和功能是否满足设计要求。
3. 实验结果与分析3.1 输入输出测试通过设计一系列输入输出测试用例,测试嵌入式系统的输入输出功能。
测试包括但不限于:按键输入、传感器数据采集、外部设备通信等。
实验结果表明,嵌入式系统的输入输出功能正常,能够准确获取和处理各种输入信号,并成功输出相应的结果。
3.2 性能测试通过设计一系列性能测试用例,测试嵌入式系统的处理能力和实时性。
测试包括但不限于:任务切换速度、响应时间、系统负载等。
实验结果表明,嵌入式系统具有较高的处理能力和实时性,能够快速响应各种任务并保持系统的稳定性。
3.3 异常情况测试通过设计一系列异常情况测试用例,测试嵌入式系统对异常情况的处理能力。
嵌入式课程设计实验分析一、教学目标本课程的教学目标是使学生掌握嵌入式系统的基本原理和设计方法,能够独立完成简单的嵌入式系统设计任务。
具体来说,知识目标包括:了解嵌入式系统的概念、组成和分类;掌握嵌入式处理器的基本原理和选用方法;熟悉嵌入式操作系统的基本原理和应用。
技能目标包括:能够使用嵌入式处理器和开发工具进行嵌入式系统的设计和开发;能够运用嵌入式操作系统进行应用程序的开发。
情感态度价值观目标包括:培养学生的创新意识和团队合作精神,提高学生解决实际问题的能力。
二、教学内容根据课程目标,教学内容主要包括嵌入式系统的概念、组成和分类,嵌入式处理器的基本原理和选用方法,嵌入式操作系统的基本原理和应用。
具体安排如下:1.嵌入式系统的概念、组成和分类:介绍嵌入式系统的定义、特点和应用领域,分析嵌入式系统的组成和分类。
2.嵌入式处理器的基本原理和选用方法:介绍嵌入式处理器的基本原理,包括指令集、架构和工作原理等,讲解如何根据应用需求选用合适的嵌入式处理器。
3.嵌入式操作系统的基本原理和应用:介绍嵌入式操作系统的基本原理,包括进程管理、内存管理、文件系统等,讲解嵌入式操作系统在实际应用中的案例。
三、教学方法为了实现课程目标,我们将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
1.讲授法:通过讲解嵌入式系统的概念、原理和应用,使学生掌握基本知识。
2.讨论法:学生针对嵌入式系统设计中的实际问题进行讨论,培养学生的创新意识和团队合作精神。
3.案例分析法:分析嵌入式操作系统在实际应用中的案例,使学生了解嵌入式操作系统的基本原理和应用。
4.实验法:引导学生动手实践,完成嵌入式系统的设计和开发,提高学生的实际操作能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用国内外优秀的嵌入式系统教材,为学生提供系统的学习资料。
2.参考书:推荐学生阅读嵌入式系统相关的参考书籍,丰富学生的知识体系。
实验一熟悉Linux开发环境一、实验目的1.熟悉Linux开发环境,学习Linux开发环境的配置和使用,掌握Minicom串口终端的使用。
2.学习使用Vi编辑器设计C程序,学习Makefile文件的编写和armv4l-unkonown-linux-gcc编译器的使用,以及NFS方式的下载调试方法。
3.了解UP-NETARM2410-S嵌入式实验平台的资源布局与使用方法。
4.初步掌握嵌入式Linux开发的基本过程。
二、实验内容本次实验使用Redhat Linux 9.0操作系统环境,安装ARM-Linux的开发库及编译器。
创建一个新目录,并在其中编写hello.c和Makefile文件。
学习在Linux 下的编程和编译过程,以及ARM开发板的使用和开发环境的设置。
下载已经编译好的文件到目标开发板上运行。
三、预备知识C语言的基础知识、程序调试的基础知识和方法,Linux的基本操作。
四、实验设备及工具(包括软件调试工具)硬件:UP-NETARM2410-S嵌入式实验平台、PC机Pentium 500以上, 硬盘10G以上。
软件:PC机操作系统REDHAT LINUX 9.0+MINICOM+ARM-LINUX开发环境五、实验步骤1、建立工作目录[root@zxt smile]# mkdir hello[root@zxt smile]# cd hello2、编写程序源代码在Linux下的文本编辑器有许多,常用的是vim和Xwindow界面下的gedit等,我们在开发过程中推荐使用vim,用户需要学习vim的操作方法,请参考相关书籍中的关于vim的操作指南。
Kdevelope、anjuta软件的界面与vc6.0 类似,使用它们对于熟悉windows环境下开发的用户更容易上手。
实际的hello.c源代码较简单,如下:#include <stdio.h>main(){printf(“hello world \n”);}我们可以是用下面的命令来编写hello.c的源代码,进入hello目录使用vi命令来编辑代码:[root@zxt hello]# vi hello.c按“i”或者“a”进入编辑模式,将上面的代码录入进去,完成后按Esc键进入命令状态,再用命令“:wq”保存并退出。
嵌入式实习报告(共5篇)第一篇:嵌入式实习报告一、嵌入式系统开发与应用概述在今日,嵌入式ARM 技术已经成为了一门比较热门的学科,无论是在电子类的什么领域,你都可以看到嵌入式ARM 的影子。
如果你还停留在单片机级别的学习,那么实际上你已经落下时代脚步了,ARM 嵌入式技术正以几何的倍数高速发展,它几乎渗透到了几乎你所想到的领域。
本章节就是将你领入ARM 的学习大门,开始嵌入式开发之旅。
以嵌入式计算机为技术核心的嵌入式系统是继网络技术之后,又一个IT领域新的技术发展方向。
由于嵌入式系统具有体积小、性能强、功耗低、可靠性高以及面向行业具体应用等突出特征,目前已经广泛地应用于军事国防、消费电子、信息家电、网络通信、工业控制等各个领域。
嵌入式的广泛应用可以说是无所不在。
嵌入式微处理器技术的基础是通用计算机技术。
现在许多嵌入式处理器也是从早期的PC 机的应用发展演化过来的,如早期PC 诸如TRS-80、Apple II 和所用的Z80 和6502 处理器,至今仍为低端的嵌入式应用。
在应用中,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。
嵌入式处理器目前主要有Am186/88、386EX、SC-400、Power PC、68000、MIPS、ARM 等系列。
在早期实际的嵌入式应用中,芯片选择时往往以某一种微处理器内核为核心,在芯片内部集成必要的ROM/EPROM/Flash/EEPROM、SRAM、接口总线及总线控制逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A 等各种必要的功能和外设。
二、实习设备硬件:Embest EduKit-IV实验平台、ULINK2仿真器套件、PC机软件:μVision IDE for ARM集成开发环境、Windows 98/2000/NT/XP三、实习目的1.初步掌握液晶屏的使用及其电路设计方法;掌握S3C2410X处理器的LCD控制器的使用;掌握通过任务调用的方法把液晶显示函数添加到uC/OS-II中;通过实验掌握液晶显示文本及图形的方法与程序设计。
嵌入式-中断实验
嵌入式中断实验是一种用来测试和学习嵌入式系统中断功能的实验。
中断是嵌入式系统中常用的一种机制,用于处理紧急事件或高优先级任务。
通过中断,系统可以立即响应外部事件,中断当前正在执行的任务,执行与中断事件相关的代码,然后返回到原来的任务中继续执行。
在进行中断实验时,通常需要以下步骤:
1. 确定中断源:确定要模拟的中断事件,比如外部输入的触发事件、定时器到达时间等。
2. 配置中断控制器:根据硬件平台和实验要求,配置中断控制器的相应寄存器,使其能够正确地处理中断信号。
3. 编写中断服务程序(ISR):定义一个中断服务程序,用于
处理中断事件。
ISR应当对事件进行必要的处理,然后返回到
原来的任务中。
4. 测试和调试:连接硬件平台,运行实验程序,并进行测试和调试,确保中断功能正常工作。
5. 扩展和优化:根据需要,可以进一步扩展和优化中断功能,比如增加多个中断源,实现优先级控制,提高系统响应速度等。
通过嵌入式中断实验,可以深入了解中断机制的工作原理和应用方法,提高对嵌入式系统的理解和能力。
嵌入式开发环境搭建实验报告实验报告:嵌入式开发环境搭建实验目的:本实验旨在通过搭建嵌入式开发环境,使学生对嵌入式系统的开发流程和环境有更深入的了解,并能够进行简单的嵌入式开发实践。
实验材料:1. 一台支持嵌入式开发的电脑2. 开发板(如Arduino、Raspberry Pi等)3. USB数据线4. 开发软件(如Arduino IDE、Raspbian等)5. 软件安装包(如果需要单独安装)实验步骤:1. 准备开发环境软件:根据使用的开发板选择相应的开发软件,并从官方网站下载安装包。
将安装包保存到电脑上指定的路径。
2. 安装开发软件:运行安装包,按照安装向导的提示进行软件的安装。
完成安装后,打开软件,检查是否安装成功。
3. 连接开发板:使用USB数据线将开发板连接到电脑上,并确保连接良好。
4. 配置开发环境:打开开发软件,进入设置或配置界面。
根据使用的开发板,选择正确的开发板型号,并设置串行端口。
保存设置。
5. 编写并调试代码:使用开发软件创建一个新的代码文件或打开一个现有的示例代码文件。
编写嵌入式程序代码,并进行调试与测试。
根据需要,可以使用调试器、仿真器等进行代码调试。
6. 上传程序到开发板:完成代码编写和调试后,将程序通过USB数据线上传(烧录)到开发板上。
等待上传过程完成。
7. 运行程序:断开USB数据线,将开发板与目标设备(如传感器、电机等)连接。
开启目标设备的电源,观察目标设备的动作与反应。
8. 实验结果分析:根据实验结果,对比设计预期和实际观测,分析代码的执行情况,查找问题并提出解决方案。
实验总结:通过本实验,我们成功搭建了嵌入式开发环境,并进行了基本的嵌入式开发实践。
通过编写代码、调试和运行程序,我们能够控制目标设备进行特定的操作。
在实验过程中,我们对嵌入式系统的开发流程和环境有了更深入的了解,并具备了一定的嵌入式开发能力。
需要注意的是,在实际的嵌入式开发中,可能还需要考虑更多的因素,如硬件接口、通讯协议、资源管理等。
实验一、dip_switch 按键实验一、实验目的1.了解DIP_SWITCH 的用处。
2.了解C6748 连接的控制DIP_SWITCH 方法。
3.熟悉CCS 操作,学会使用工程,学习编译和下载、运行程序。
二、实验设备1.PC 兼容机一台;操作系统为WindowsXP 或者以上版本。
2.ICETEK-C6748-AE 实验箱一台。
如无实验箱则配备ICETEK-XDS100v2+仿真器和ICETEK–C6748-A,+5V 电源一只。
3.USB 连接电缆一条。
三、实验原理ICETEK-C6748-AE 通过GPIO 来控制拨码开关的,通过对对应的GPIO 引脚的读,可以知道拨码开关的状态,再通过对GPIO 控制led 的显示,把拨码开关的状态显示出来。
2.实验程序流程图:四、实验步骤1.实验准备:(1) 连接实验箱:(2) 准备进行硬件仿真:(3) 检查ICETEK- C6748-KB 板上跳线选择器U15 为0000。
2.启动Code Composer Studio v53.打开工程文件:工程文件目录为:C:\ICETEK\ICETEK-C6748-AE\Lab0301-Led_dip打开源程序LED.c 阅读程序,理解程序内容。
4.点击图标,ccs 会自动连接,编译和下载程序。
5.运行程序,观察结果。
6.退出CCS。
五、实验结果[C674X_0] ------------------------------------------------------------C6748-A LED and Dip Switch TestTest Description----------------this code will begin by flashing the leds, then it will sit ina forever loop checking the dip switches. when a change in thedip switches is detected, a message will be printed to stdoutand an led will be toggled.------------------------------------------------------------Initialize the Required BSL Modules-----------------------------------Execute Test------------flash led patternsloop forever printing dips switch status and setting leds based on dips拨动相应的拨码开关 SW1,对应的 led 灯会跟着亮灭六、问题与思考拨码开关用到的gpio 口是与EMIFA 数据线复用的,应用时注意避免硬件间的冲突。
七、实验心得通过这次实验我们了解了dip_switch 按键的使用方法,熟悉了CCS 操作,了解了C6748 连接的控制DIP_SWITCH 方法。
实验二.RTC 实验一、实验目的1.了解RTC 的用途。
2.了解C6748 连接的控制的访问RTC 的方法。
3.熟悉CCS 操作,学会使用工程,学习编译和下载、运行程序。
二、实验设备1.PC 兼容机一台;操作系统为WindowsXP 或者以上版本。
2.ICETEK-C6748-AE 实验箱一台。
如无实验箱则配备ICETEK-XDS100v2+仿真器和ICETEK–C6748-A,+5V 电源一只。
3.USB 连接电缆一条。
三、实验原理RTC 是Real-Time Clock, 是实时时钟的意思,C6748 内部集成了实时时钟功能,利用这一功能可以实现和时间相关的产品设计和开发。
四、实验步骤1.实验准备:(1) 连接实验箱:请参看本书第三部分、第一章、二.ICETEK DSP 教学实验箱的硬件连接。
(2) 准备进行硬件仿真:请参看本书第三部分、第一章、四、3。
(3) 检查ICETEK-C6748-KB 板上跳线选择器U15 为0000。
2.启动Code Composer Studio v53.打开工程文件:目录为:C:\ICETEK\ICETEK-C6748-AE\Lab0302-RTC打开源程序LED.c 阅读程序,理解程序内容。
4.点击图标,ccs 会自动连接,编译和下载程序。
5. 程序分析程序运行后,进入main_rtc.c 程序中的main()函数,显示“C6748 RTC Test”。
调用TEST_RTC 函数进行具体测试,程序先初始化RTC 模块,然后设定一个时间,再延时10 秒,再读出新的时间与前面的时间比较是否差了10 秒,并根据函数返回值显示“PASS.”表示没有错误发生;如果显示“FAIL.”表示有错误被检查到。
6.运行程序,观察结果。
7.退出CCS。
五、实验结果[C674X_0] ------------------------------------------------------------C6748-A RTC TestTest Description----------------this code will configure the RTC module, set the time, andverify the time is correct after 10 seconds.------------------------------------------------------------Initialize the Required BSL Modules-----------------------------------Execute Test--------------- Set time: Wednesday April 18, 80 15:00:00 (04/18/80 15:00:00) ---wait 10 seconds...Get time: 04/18/80 15:00:11********** C6748-A TEST PASSED **********测试通过六、实验心得通过这次实验了解了RTC的用途,了解了C6748连接的控制的访问RTC的方法,学会了使用工程。
实验三、定时器一、实验目的1.了解定时器的用途。
2.了解C6748 连接的控制的访问定时器的的方法。
3.熟悉CCS 操作,学会使用工程,学习编译和下载、运行程序。
二、实验设备1.PC 兼容机一台;操作系统为WindowsXP 或者以上版本。
2.ICETEK-C6748-AE 实验箱一台。
如无实验箱则配备ICETEK-XDS100v2+仿真器和ICETEK–C6748-A,+5V 电源一只。
3.USB 连接电缆一条。
三、实验原理1.定时器的控制:TMSC6748A 中包含了3 个64 位的通用定时器,和一个64 位通用/看门狗定时器,定时器可以作为双32 位定时器,64 位通用定时器和看门狗,定时器时钟来自外部时钟或者内部时钟通过寄存器TCR 中的CLKSRC34 和CLKSRC12 控制。
本例程是用双32 位定时器。
在对定时器做配置时,TIM34 用作配置定时器计数值,PRD34 用来存储定时器的输入时钟的记数周期值,TGCR 用来对定时器进行全局配置,本例程中把定时器配制成双32 位unchained 模式。
TCR 是定时器控制寄存器,在本例程中定时器被配置成连续工作模式。
四、实验步骤1.实验准备:(1) 连接实验箱:(2) 准备进行硬件仿真(3) 检查ICETEK-C6748-KB 板上跳线选择器U15 为0000。
2.启动Code Composer Studio v53.打开工程文件:目录为:C:\ICETEK\ICETEK-C6748-AE\Lab0302-RTC打开源程序LED.c 阅读程序,理解程序内容。
4.点击图标,ccs 会自动连接,编译和下载程序。
5. 程序分析程序运行后,进入main_Timer.c 程序中的main()函数,显示“C6748-ATimer Test”。
调用TEST_Timer 函数进行具体测试,程序先初始化led 和定时器模块,定时器在定时时间到的时候产生中断,然后中断函数里面使能Led,连续20 次后关闭定时器,并根据函数返回值显示“PASS.”表示没有错误发生;如果显示“FAIL.”表示有错误被检查到。
6.运行程序,观察结果。
7.退出CCS。
五、实验结果Led 灯连续亮灭20 次。
六、实验心得通过本次实验熟悉用计算机编程软件操作,梯形图的输入,编辑和检查程序并且掌握程序在线运行的步骤以及学习如何调试程序的基本方法,练习了使用定时器做通电、断电、通断电以及闪烁报警的延时效果,合理地配置定时器的常开、常闭开关可以达到要求的延时。
实验四、A/D转换器应用一、实验目的1、熟悉ADS开发环境2、熟悉C语言编程3、了解A/D转换相关知识二、实验设备LPC2000开发板、PC机、JTAG调试板、配料生产线控制技术综合试验台三、实验内容1、建立ADS开发环境2、编程实现A/D转换3、计算A/D转换后的电压值四、实验说明W1的分压信号连接到AD0.5,连通串口到PC,调节电位器W1,按下INT0键(该按键连接到P2.10),每次按下均会触发一次AD转换,通过串口调试工具观察结果。
串口调试工具波特率须设置为115200。
五、实验程序#include "config.h"#include <stdarg.h>volatile uint32 eAdcValue; // 存放AD结果寄存器内容的全局变量volatile uint8 eAdcFinish; // 发送AD转换结果给上位机的标志/********************************************************************************** ************* 函数名称: Uart0Printf*** 函数描述:通过串口格式化输出字符串*** 入口:字符串(可变变量个数)*** 出口:输出字节数*********************************************************************************** *********/int Uart0Printf(const char *fmt,...){int cnt;va_list ap;static char s tring[512];static char *s = NULL;if(s == NULL){uint16 fdiv;PINSEL0 = (PINSEL0 & ~(0x0fU << 4)) | (0x05 << 4);U0LCR = 0x83; // DLAB=1,允许设置波特率fdiv = (Fpclk / 16) / 115200; // 设置波特率为115200bpsU0DLM = fdiv / 256; // 设置波特率分频器U0DLL = fdiv % 256; // 设置波特率分频器U0LCR = 0x03; // 禁止波特率设置}s = string;va_start(ap,fmt);cnt = vsprintf(string,fmt,ap);while (*s){U0THR = *s++;while ((U0LSR & 0x40) == 0); // 等待数据发送完毕}va_end(ap);return cnt;}/********************************************************************************** ************* 函数名称: VicRegISR*** 函数描述:注册中断程序*** 入口: no : VIC 通道*** pri : VIC 优先级别** isr : VIC 中断服务程序*** 出口: 0:失败 1:成功*********************************************************************************** *********/uint8 VicRegISR(uint32 no, uint32 pri, uint32 isr){if(no > 31) return 0;if(pri > 15) return 0;*(volatile uint32*)((&VICVectAddr0)+no) = isr; //设置中断服务函数*(volatile uint32*)((&VICVectPri0)+no)= pri & 0x0F; //设置中断优先级VICIntSelect &= ~(1<<no);VICIntEnable = 1<<no;return 1;}/********************************************************************************** ************* 函数名称: AdcIrqException*** 函数描述: ADC 中断服务程序*** 入口:无*** 出口:无*********************************************************************************** *********/void __irq AdcIrqException(void){eAdcValue = ADDR5; // 读取ADC数据eAdcFinish = 1; // 使能串口发送ADC0数据的控制位VICVectAddr = 0x00; // 通知VIC中断处理结束}/********************************************************************************** ************* 函数名称: AdcInit*** 函数功能: ADC初始化*** 入口参数:无*** 出口参数:无*********************************************************************************** *********/void A dcInit(void){PCONP |= (1 << 12); // 必须打开ADC的功率控制位ADC才可以正常工作PINSEL3 |= ((unsigned)0x03) << 30; // 设置P1.31为AIN5功能/* 进行ADC模块设置 */AD0CR = (1 << 5) | // SEL=0x20,选择通道5((Fpclk / 1000000 - 1) << 8) | // CLKDIV=Fpclk/1000000-1,转换时钟为1MHz(0 << 16) | // BURST=0,软件控制转换操作(0 << 17) | // CLKS=0, 使用11clock转换(1 << 21) | // PDN=1,正常工作模式(2 << 24) | // START=2,当EDGE选择的边沿出现时启动AD转换(1 << 27); // 上升沿AD0INTEN = (1 << 5); // 使能AD通道5转换结束后产生中断}/********************************************************************************** ************* 函数名称: main*** 函数功能:主函数,进行5通道电压ADC转换,并把结果转换成电压值,发送到串口。