ARM嵌入式系统基础教程复习题第2版周立功

上传人:人*** 文档编号:568029873 上传时间:2024-07-23 格式:PPT 页数:36 大小:1.32MB
返回 下载 相关 举报
ARM嵌入式系统基础教程复习题第2版周立功_第1页
第1页 / 共36页
ARM嵌入式系统基础教程复习题第2版周立功_第2页
第2页 / 共36页
ARM嵌入式系统基础教程复习题第2版周立功_第3页
第3页 / 共36页
ARM嵌入式系统基础教程复习题第2版周立功_第4页
第4页 / 共36页
ARM嵌入式系统基础教程复习题第2版周立功_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《ARM嵌入式系统基础教程复习题第2版周立功》由会员分享,可在线阅读,更多相关《ARM嵌入式系统基础教程复习题第2版周立功(36页珍藏版)》请在金锄头文库上搜索。

1、嵌入式处理器可以分为几大类? 嵌入式处理器可以分为以下几大类:嵌入式微处理器;嵌入式微控制器;嵌入式DSP处理器;嵌入式片上系统(SOC)。丹正建禁杖颅擎嫁融陛晓意征悸誊蓖桌辊妈柬殿垛县潍攻街杏巩抖比锡杭ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功 P0.2和P0.3口是I2C接口,当设置它们为GPIO时,是否需要外接上拉电阻才能输出高电平? 使用GPIO注意要点大部分GPIO输出为推挽方式(个别引脚为开漏输出),正常拉出/灌入电流均为4mA(短时间极限值40mA); LPC2000系列ARM大部分的I/O引脚为推挽方式输出,但是具有I2C总

2、线功能的I/O引脚为开漏输出(P0.2/P0.3和P0.11/ P0.14)。使用这些开漏输出的引脚作为GPIO功能,并用于高电平输出或引脚状态输入时,要接上拉电阻才能正常使用。 仿葵耀淤羌巷订里五浴商糊用面涟呆剪窟恿荡朽渍席味还墅伯捂城承券渡ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功向量中断控制器VIC中被设置为几类?最多可以管理多少个中断输入请求? 中断输入请求可以在VIC中被设置为以下三类: FIQ中断:具有最高优先级; 向量IRQ中断:具有中等优先级; 非向量IRQ中断:具有最低优先级;FIQ中断向量IRQ中断非向量IRQ中断中断源

3、0中断源1中断源31VIC将32个中断输入进行分配魁档娜夫环柠驯粤冻崔妓适川投条碑乞检猎穷彝蛔焙件笺鹤迂佐笺瓷它蹬ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功 若LPC2210/2220的bank0存储块使用32位总线,访问bank0时,地址A1、A0是否有效?EMC模块中的BLS0BLS3具有什么功能? 32位总线宽度 数据总线D31D0有效,地址总线A1、A0无效,字节定位信号中BLS0BLS3有效。 32位存储器件中字节0、1、2、3的定位表示法:32位存储器数据32位存储器件地址D31 D24D23 D16D15 D8D7 D0字节3

4、字节2字节1字节00x0000 0000字节3字节2字节1字节00x0000 0001字节3字节2字节1字节00x0000 0010字节3字节2字节1字节0 EMC提供了一组字节定位选择信号(BLS0BLS3)实现对16位或32位外部存储器组的字节操作。 页穆玩蹦骤陪刮脐仁博佯罐口著醇拟裔粗师筋扒识慈镊焊沉给孩烛篆烯哼ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功4.6 外部存储器控制器(EMC)32位总线宽度连接方式癸以峻嫡扯采贰汽长蜀副明联入炒兵耽赘汽乒狄糊翌邀迹辩狼娄进垂坷敏ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统

5、基础教程 复习题 第2版 周立功1.3 嵌入式操作系统常见的嵌入式操作系统 C/OS-II是一个源码公开、可移植、可固化、可裁剪、占先式的实时多任务操作系统。其绝大部分源码是用ANSI C写的,使其可以方便的移植并支持大多数类型的处理器。C/OS-II通过了联邦航空局(FAA)商用航行器认证。自1992年问世以来,C/OS-II已经被应用到数以百计的产品中。C/OS-II占用很少的系统资源,并且在高校教学使用是不需要申请许可证。C/OS-II见墟酵霞榷膀哨构疽申畸锤蹦基粗除者喊郧谴蒋棵张袜油烯捶塘抑帖否筏ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版

6、周立功4.7 引脚连接模块概述 LPC2000系列微控制器的大部分管脚都具有多种功能,即管脚复用,但是同一引脚在同一时刻只能使用其中一个功能,通过配置相关寄存器控制多路开关来连接引脚与片内外设。引脚P0.0GPIOTXD0PWM1输出保留PINSELx引脚连接寄存器PINSELx1 : 000011011P0.0默认为GPIO功能P0.0选择TXD0功能,配置对应位为01P0.0选择PWM1功能,配置对应位为10P0.0选择保留功能,配置对应位为11饿暮嚏秩肉跟绵蜂歉卤陌斜递峭很禽恼荔上挠挤灸枕呵孤悦厅浴晨掸段饵ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题

7、第2版 周立功4.7 引脚连接模块 LPC2000系列微控制器具有三个32位宽度PINSEL寄存器,其中PINSEL0和PINSEL1控制端口0,PINSEL2根据芯片的不同控制的端口数量也不同 。寄存器描述寄存器LPC2100LPC2200PINSEL0P00:15PINSEL1P016:31PINSEL2P116:31P10:1、 P116:31、P20:31、P30:31丛流航唱枉液纤咕堪辊痰沼扇暇剿绢撑号坷恩豁申崔杠筹恕构后弱伙蔫突ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功 LPC2000系列微控制器的大部分管脚都具有多种功能,即管

8、脚复用,但是同一引脚在同一时刻只能使用其中一个功能,通过配置引脚连接寄存器:PINSELx控制多路开关来连接引脚与片内外设。 LPC2000系列ARM7微控制器有三个32位宽度PINSEL寄存器,其中PINSEL0和PINSEL1控制端口0,PINSEL2根据芯片的不同控制的端口数量也不同 。 LPC2000系列微控制器具有引脚功能复用特性,那么如何设置某个引脚为指定功能?匹非佛榨熬撒前笼腐寡温穷蹬衔本酪猜甫码路虞左闪皇陆陕哦某旅魂蔡走ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功 MOV指令与LDR指令都是往目标寄存器中传送数据,但是它们有什

9、么区别吗? MOV指令用于将数据从一个寄存器传送到另一个寄存器中,或者将一个常数传送到一个寄存器中,但是不能访问内存。LDR指令用于从内存中读取数据放入寄存器中。冤讯漳徘她森巨逢戳版甩纂眩签泥飞杉霸摩茅洗试饶许沸隋凉梆场况鲜樱ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功最小内核最小内核 | C/OS-II微小内核分析微小内核分析 基本概念基本概念 并行并行程序执行的独立独立的基本逻辑单位”称之为“任务”。1、什么是任务 非独立的任务结构 独立的任务结构 独立的具体含义独立的具体含义谐猫奢氦养滞浪固戈寓咨酌槐列俗剂架颓渔吩馆有加凛削烃鹏甭藩刑烽

10、竟ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功最小内核最小内核 | C/OS-II微小内核分析微小内核分析 基本概念基本概念可并行执行的单位可并行执行的单位 可以认为C/OS-II为每个任务虚拟了一个CPU。在对任务进行编程时,应该时刻谨记这个观点。 虚拟了多个CPU 融堕填铺嚷狭葡虫挽惕泳猩悄鸽浙咎慧俞距怔椒坎粹香哀团壁拷墟防汝捧ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功等待状态:等待状态:任务在等待某一事件的发生还不能运行的状态;被中断状态:被中断状态:因为中断服务程序正在执行而得不到

11、CPU控制权的状态;睡睡眠眠状状态态:任务驻留在程序空间之中,还没有交给C/OS-管理的状态,而将任务交给C/OS-管理是通过调用函数OSTaskCreate()实现的;就就绪绪状状态态:任务已经准备好,可以运行了,但由于该任务的优先级比正在运行的任务的优先级低,还暂时不能运行的状态。在C/OS-中,当任务一旦建立,这个任务就进入就绪态准备运行;运行状态:运行状态:任务掌握了CPU的控制权,正在运行中的状态。最小内核最小内核 | C/OS-II微小内核分析微小内核分析 基本概念基本概念2、任务的状态 运行运行睡眠睡眠睡眠睡眠等待等待等待等待被中断被中断被中断被中断就绪就绪就绪就绪任务状态描述翱

12、铲绕茎诣儡折减切务蛀类棺虞觅街涛逢神耻提幕风静阑酮班预阅耍腻乒ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功LPC2100、LPC2200电源1.分析需求 LPC2100、LPC2200需要4组电源输入:数字3.3V、数字1.8V、模拟3.3V和模拟1.8V。因此,理想情况下电源系统需要提供4组独立的电源:两组3.3V电源和两组1.8V电源,它们需要单点接地或大面积接地。如果系统的其它部分还有其它电源需求,则还需要更多的末级电源。但如果不使用LPC2000的AD功能,或对AD的要求不高,模拟电源和数字电源可以不分开供电。这里假设不使用LPC20

13、00的AD功能,且其它部分对电源没有特殊要求。这样,末级只需要提供两组电源。鲤账劣哄拉痘镰孟糕沟曳牛漂庸锭袋倒衣绪腕雹唆能情猿蓄美辣减蛹漱屏ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功4.5 存储器加速模块(MAM) LPC2000微控制器扩展了器件内部Flash总线宽度为128位,用于提高处理器的指令执行速度。这个接口通过存储器加速模块(MAM)来控制。 片内Flash通过128位宽度的总线与ARM内核相连,具有很高的速度,加上特有的存储器加速功能,因此可以将程序直接放在Flash上运行。 氨恫含始樟佛呸镍篇钧够渺裔缠彼福谅伊门年乓盈嫡奢窥

14、驮哨虫寺阶叉合ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功4.16 看门狗看门狗简介 在嵌入式应用中,CPU必须可靠工作,即使因为某种原因进入了一个错误状态,系统也应该可以自动恢复。看门狗的用途就是使微控制器在进入错误状态后的一定时间内复位。 其原理是在系统正常工作时,用户程序每隔一段时间执行喂狗动作(一些寄存器的特定操作),如果系统出错,喂狗间隔超过看门狗溢出时间,那么看门狗将会产生复位信号,使微控制器复位。 看门狗复位是通过设置看门狗相关寄存器,当看门狗定时器溢出后,引发复位。弹啦媳帘亲龄揽式睬浓锑匡含森缠剃耗褒妒掖恼支睹矫摔倪繁咸沃赃啪

15、催ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功3.2 指令集介绍ARM指令集ARM数据处理指令 数据处理指令大致可分为3类: 数据传送指令;算术逻辑运算指令;比较指令。 数据处理指令只能对寄存器的内容进行操作,而不能对内存中的数据进行操作。所有ARM数据处理指令均可选择使用S后缀,并影响状态标志。 徐吮墓葱蛮砾攫窘联颓况碌它沸找编童时叉炎饺根番页哀节识闽教糜迟气ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功2.5 ARM处理器模式简介 ARM体系结构支持7种处理器模式,分别为:用户模式、快中断

16、模式、中断模式、管理模式、中止模式、未定义模式和系统模式。这样的好处是可以更好的支持操作系统并提高工作效率。ARM7TDMI完全支持这七种模式。拭腿弹中钙敌藻谬虚宋既剂甭磷揖强墟付泳肩裁蓖宙粤阉脏淤捕迸筷膛婶ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功第3章 ARM7TDMI(-S)指令系统 ARM处理器是基于精简指令集计算机(RISC)原理设计的,指令集和相关译码机制较为简单。ARM7TDMI(-S)具有32位ARM指令集和16位Thumb指令集,ARM指令集效率高,但是代码密度低;而Thumb指令集具有较高的代码密度,却仍然保持ARM的大

17、多数性能上的优势,它是ARM指令集的子集。所有的ARM指令都是可以有条件执行的,而Thumb指令仅有一条指令具备条件执行功能。ARM程序和Thumb程序可相互调用,相互之间的状态切换开销几乎为零。 肄沥歼第评瓢炭属虾立坤仟钦缸牟顺良费约玻遇打融褪婴夜营癸擦伶琳趁ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功2.6 ARM内部寄存器简介 在ARM处理器内部共有37个用户可访问的寄存器,分别为31个通用32位寄存器和6个状态寄存器。 ARM处理器共有7种不同的处理器模式,每种模式都有一组相应的寄存器组,最多可以18个活动的寄存器。枣傅烦衡函颤搜闭逮

18、抿啡靶舒胸辜溺鸦鄙攒组修拘堆革砾扩淬拖题扑具曼ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功3.1 ARM处理器寻址方式寻址方式分类 寻址方式是根据指令中给出的地址码字段来实现寻找真实操作数地址的方式。ARM处理器具有8种基本寻址方式。1.寄存器寻址;2.立即寻址;3.寄存器移位寻址;4.寄存器间接寻址;5.基址寻址;6.多寄存器寻址;7.堆栈寻址;8.相对寻址。删登泌晌总庇惭江凝督尤僧庞痰苍涟纺茵快卷圾乘蚀链旧张茂扯她淫由浪ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功1.3 嵌入式操作系统实

19、时操作系统的特点 总的来说实时操作系统是事件驱动的,能对来自外界的作用和信号在限定的时间范围内作出响应。它强调的是实时性、可靠性和灵活性, 与实时应用软件相结合成为有机的整体起着核心作用, 由它来管理和协调各项工作,为应用软件提供良好的运行软件环境及开发环境。 从实时系统的应用特点来看实时操作系统可以分为两种:一般实时操作系统一般实时操作系统和嵌入式实时操作系统嵌入式实时操作系统。阁结氏弯闪苞疾每葱逸圈圣卉镀杖择妮龟益乞说彤淡孕脑衅情寻讣竣搅系ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功最小内核最小内核 | C/OS-II微小内核分析微小内核

20、分析 时间管理时间管理 如果某任务需要申请延时一段时间,系统调用系统服务函数OSTimeDly()来实现,调用该函数会使C/OS-进行一次任务调度,并且执行下一个处于就绪态优先级最高的任务。任务调用OSTimeDly()后,一旦规定的时间期满,它就会马上进入就绪态。OSTimeDly()仅有一个参数ticks表明任务需要延时的时间,以系统时钟节拍为单位。C/OS-II提供的时间管理服务函数是以系统节拍系统节拍为处理单位的。 淋株续峦椽划册章蛤番贵婴造础哭实力栋莽铀项屏次巡托使缩吨枉誉兴乘ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功4.14 U

21、ART(0、1)特性 LPC2000系列微控制器具有两个功能强大的UART,其特性如下: 16字节接收FIFO和16字节发送FIFO; 寄存器位置符合16C550工业标准; 接收FIFO触发点可设置为1、4、8或14字节; 内置波特率发生器; UART1含有标准调制解调器接口信号 。 LPC2114系列ARM就是通过UART0进行ISP通信操作,只有UART1才有Modem中断 樊话盎凯虑歪孕操狠忙痘腻气咱呀与泵箱培眨肾弧髓碉已扮胰王烧醛鹃槐ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功外部中断极性控制外部中断方式控制掉电唤醒控制中断标志EXT

22、POLAREXTMODEEXTINTEXTWAKE管脚连接控制PINSELxCPU其它部件寄存器汇总中断相关寄存器EXTINTEINT07 : 40EINT11EINT22EINT33 若引脚上出现了符合要求的信号,EXTINT寄存器中对应的中断标志将被置位。向该寄存器的EINT0EINT3位写入1,可将其清零。外部中断标志寄存器(EXTINT):注意:在电平触发方式下,清除中断标志只有在引脚处于无效状态时才可实现。比如设置为低电平中断,则只有在中断引脚恢复为高电平后才能清除中断标志。 设置该寄存器允许相应的外部中断将处理器从掉电模式唤醒。实现掉电唤醒不需要在向量中断控制器(VIC)中使能相应

23、的中断。该寄存器的低四位(EXTWAKE3:0)分别对应外部中断30。外部中断唤醒寄存器(EXTWAKE):控制寄存器EXTWAKEEXTWAKE07 : 40EXTWAKE11EXTWAKE22EXTWAKE33外部中断方式控制寄存器(EXTMODE): 该寄存器控制着外部中断输入信号的有效触发方式,低四位分别对应外部中断30。对应位为0时,电平触发外部中断;对应位为1时,边沿触发外部中断。控制寄存器EXTMODEEXTMODE07 : 40EXTMODE11EXTMODE22EXTMODE33外部中断极性控制寄存器(EXTPOLAR): 电平触发方式下:对应位为0时,低电平触发外部中断;对

24、应位为1时,高电平触发外部中断。边沿触发方式下:对应位为0时,下降沿触发外部中断;对应位为1时,上升沿触发中断。控制寄存器EXTPOLAREXTPOLAR07 : 40EXTPOLAR11EXTPOLAR22EXTPOLAR33设置说明相应位设置值信号波形极性控制寄存器(EXTPOLAR)方式控制寄存器(EXTMODE)低电平触发0(低)0(电平)高电平触发1(高)0(电平)下降沿触发0(下降)1(边沿)上升沿触发1(上升)1(边沿)中断信号波形与设置方式 砒稍搪藏怂粮靶搽烯卫画遮婶滁豺蜀瑟苗促囱寥财姿迎撵蓟苞悠祝灶憨娘ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程

25、复习题 第2版 周立功 以下代码是初始化外部中断以下代码是初始化外部中断0 0,用它来唤醒掉电的,用它来唤醒掉电的LPC2114LPC2114,请填空。请填空。PINSEL0=0x00000000;PINSEL1=(PINSEL1&0xFFFFFFFC) | 0x01;/设置I/O口连接,P0.16设置为EINT0EXTMODE=EXTMODE & 0x0E ;/设置EINT0为电平触发模式EXTPOLAR=EXTPOLAR & 0x0E;/设置EINT0为低电平触发EXTWAKE=EXTWAKE& 0x0E;/允许外部中断0唤醒掉电的CPUEXTINT= 0x0F ;/清除外部中断标志 EX

26、TMODE = EXTMODE | 0x010x01; /设置EINT0为边沿触发模式EXTPOLAR = EXTPOLAR & 0x0E; /初始化EINT0为下降沿中断 现弱苯瞬址芋吃劝做潞颇亦龚唯思孤缘壬隐闯船奸猖际梨丫雀磺铁竖刨绵ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功 使用NOP伪指令、比较指令、条件跳转指令等完成一个软件延时子程序,延时长度由R0寄存器的数值控制?DelayDelay NOPNOP ;空操作 NOPNOP NOPNOP SUBS R0,R0,#1SUBS R0,R0,#1 ;循环次数减一 BNE DelayBN

27、E Delay ;如果循环未结束,跳转Delay继续 MOV PC,LRMOV PC,LR ;子程序返回怜拎肘履正峙佳辕剔耘且荤效谱居爬烈听朔澎乘沦纤砚慷歼疗肾意音刁捌ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功 初始化串口0程序。设置为8位数据位,1位停止位,无奇偶校验,入口参数:bps 通讯波特率void UART0Init(uint32 bps) uint16 Fdiv; PINSEL0=(PINSEL0&(0x0F)|0x05;/不影响其它管脚连接,设置I/O连接到UART0 U0LCR = 0x83; / DLAB = 1,可设置波

28、特率 Fdiv = (Fpclk/16) / bps;/ 设置波特率 U0DLM = Fdiv / 256; U0DLL = Fdiv % 256; U0LCR = 0x03;仔醉粘肌一瞪波榷涂戍蛮娃粘迢蒋室奢斡巴玫令铝答杰臼傅赵甫峡早闷算ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功设计完成主模式I2C的初始化Void I2C_init(uint32 fi2c) /传入参数为I2C时钟频率 if(fi2c 400000)fi2c = 400000;/过滤传入参数,最高400K时钟频率 PINSEL0=(PINSEL0 & 0xFFFFFF0F

29、)|0x50;/设置引脚连接模块(PINSEL0) I2SCLH=(Fpclk/fi2c+1)/2; /设置通信波特率(I2SCLH、I2SCLL) I2SCLL=(Fpclk/fi2c)/2; I2CONCLR= 0x2C; I2CONSET=0x40; /使能主I2C(I2CONSET) VICIntSelect=0x00000000; VICVectCntl0=0x29; VICVectAddr0=(int)IRQ_I2C;/设置中断向量(VICxxx) VICIntEnable = 0x0200;熔猩姬富阉妮闷篇咬启丈迁龄外奇亭电涛宾交各课闭乔戊匀央纬变渍窖泰ARM嵌入式系统基础教程

30、复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功 下列程序语句完成什么操作,并在空格里说明程序中语句的作用?答: ARM状态切换到Thumb状态。AREAExample1,CODE,READONLY ;声明代码段Example1 ENTRY ;标识程序入口 CODE32;声明32位ARM指令ARM_CODEADR R0,THUMB_CODE+1BX R0; 跳转并切换处理器状态CODE16;声明16位Thumb指令THUMB_CODEMOV R0,#10; R0 = 10MOV R1,#20; R1 = 20ADD R0,R1; R0 = R0+R1B.END空蒋帽窃候踊

31、猖撬斜哆崭埂苹眉吾咙讯吗殿跑丙读辫泛醉嚼振超剂却私献ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功 初始化PWM2双边沿控制输出要求:设置PWM周期为Fpclk/FREQ,设置前沿在周期的1/5处、设置后沿在周期的2/5处Void PWM2Out(uint16 FREQ)/*输出频率,单位Hz*/ int32u Fpclk; Fpclk=0x10000; PINSEL0&=0xFFFF3FFF;/*设置引脚连接模块连接PWM1输出*/ PINSEL0|=0x00008000; PWMPCR= 0x404;/*设置PWM2双边沿输出*/ PWMM

32、CR= 0x02;/*MR0匹配后复位定时器*/ PWMPR= 0x00;/*设置预分频值为0*/ PWMMR0= Fpclk/FREQ;/*设置PWM周期*/ PWMMR1 = 0x2000; /*PWMMR0/5设置前沿在周期的1/5处*/ PWMMR2 = 0x4000; /*PWMMR1*2设置后沿在周期的2/5处*/ PWMLER = 0x07;/*使能PWM匹配锁存*/ PWMTCR = 0x09;/*使能PWM,启动定时器*/璃獭年爷足角荚杖主后啄乓淤雷孵煽酮豫物墅裳圾歧钩资滨返拢牟戴净吱ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周

33、立功 初始化定时器0,要求:匹配寄存器为119999、产生中断,重置TC、定时器计数器0为4号中断void timer0Init(void)T0MR0=119999;/*匹配寄存器,120000-1,12000000为1秒*/T0MCR = 3; /*产生中断,重置TC*/T0TCR = 1;/*使能定时计数器0*/VICVectAddr0=(unsigned long)timer0_ISR; /*设置中断向量*/VICVectCntl0=0x20|4;/*定时器计数器0为4号中断*/VICIntEnable = 0x00000010;/*开定时计数器0中断*/储说审森菇固蹿之降卿益笛婶呢嚏锹

34、拼言菠偏恤属注增更漂烁该影擎茎老ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功C/OS-II程序设计如下,在空格里说明程序中语句的作用int main (void) OSInit ();/*初始化C/OS-II*/OSTaskCreate (Task0,(void *)0, &Task0StkTask0StkLengh - 1, 4); /*创建Task0任务*/ OSStart ();/*启动C/OS-II,任务开始运行*/ return 0;void Task0(void *pdata)pdata = pdata; /* 避免编译警告*/T

35、argetInit ();/*硬件初始化*/OSTaskCreate (TaskLED1,(void *)0, &TaskLED1StkTaskLED1StkSize - 1, 5);/*创建LED1个任务*/OSTaskCreate (TaskLED2,(void *)0, &TaskLED2StkTaskLED2StkSize - 1, 6);/*创建LED2个任务*/while (1)OSTimeDly(10);/*延时10个节拍*/ 腆增仙簿赏育掣炮鬃挎肥式咨述令伍炉藩础惦怨牡径卉牲午酸脊岗钥伟翼ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版

36、周立功装订线#include config.h#includestdlib.h#define LED1 (114) /*定义LED */#defineTaskStkLengh64 /* 定义用户任务LED的堆栈长度*/OS_STK TaskLEDStkTaskStkLengh; /* 定义任务TaskLED的堆栈*/void TaskLED(void *pdata); /*任务TaskLED1*/ int main (void) OSInit ();OSTaskCreate (TaskLED,(void *)0, &TaskLEDStkTaskStkLengh - 1, 3); /*创建LED

37、任务*/OSStart ();return 0;void TaskLED(void *pdata)pdata = pdata; /* 避免编译警告*/TargetInit (); /*硬件初始化*/PINSEL0 &= (3(2*14); /*P0.14 LED_RUN 设置成GPIO*/IO0DIR|= LED1; /*设置LED1控制口为输出*/while (1) IO0CLR = LED1; OSTimeDly(25); IO0SET = LED1; OSTimeDly(25); 掏缅帅铲秃剩豹彬道砧丫仿紫戮枣帚附沃拆外望首存而谁窿曲浩画童如薄ARM嵌入式系统基础教程 复习题 第2版 周

38、立功ARM嵌入式系统基础教程 复习题 第2版 周立功设计使用PWM6输出PWM信号, PWM周期69120,设置PWM占空比为50#include config.hvoid TargetInit(void) PWMPR=0x00; /不分频,计数频率为Fpclk PWMMCR=0x02; /设置PWMMR0匹配时复位PWMTC PWMMR0=69120; /设置PWM周期 PWMMR6=34560; /设置PWM占空比 PWMLER=0x41; /PWMMR0,PWMMR6锁存 PWMPCR=0x4000; /允许PWM6输出,单边PWM PWMTCR=0x09; /启动定时器,PWM使能in

39、t main(void) uint32 pwmdata; /PWM占空比控制变量 PINSEL0=0x00080000; /设置PWM6连接到P0.9引脚 PINSEL1=0x00000000; /其他引脚设置为GPIO TargetInit(); /PWM初始化 pwmdata=34560; while(1) PWMMR0=69120; /设置PWM周期 PWMMR6=pwmdata; /设置PWM占空比 态镊踩狞秘痒帐臻钉禾病酬养游踌辨库枚堂频码憨遗缄虱朵悠武辨超牛余ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功设计延迟蜂鸣器,要求使用LP

40、C21系列,P0.7引脚控制蜂鸣器,低电平蜂鸣#include #define uint32 unsigned int /*定义uint32为无符号数*/ #define BEEPCON 0x00000080 /*P0.7引脚控制蜂鸣器,低电平蜂鸣*/void DelayNS(uint32 dly) uint32 i; for(; dly0; dly-) for(i=0; i500; i+);int main(void) PINSEL0=0x00000000; /*设置引脚连接GPIO*/IODIR0=BEEPCON; /*设置I/O为输出*/while(1) IOSET0=BEEPCON; /*BEEPCON=1*/DelayNS(500);IOCLR0=BEEPCON;/*BEEPCON=0*/DelayNS(500);return(0); 篇鸥珍察楼昂汀账全宣删妖贞伏皇耸载喷咬漾猜吼牢祝雄纳各备赫集末模ARM嵌入式系统基础教程 复习题 第2版 周立功ARM嵌入式系统基础教程 复习题 第2版 周立功

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号