RTOS Salvo在单片机中的应用--遥控LED点阵安全天显示屏.docVIP

RTOS Salvo在单片机中的应用--遥控LED点阵安全天显示屏.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
. .. RTOS Salvo在单片机中的应用—— 遥控LED点阵安全天显示屏 什么是RTOS? 实时操作系统(real-time operating system)简称RTOS。 Salvo是什么? Salvo是一个能运行在有限的ROM和RAM的单片机上的强大的、高性能的、只需要很少的RAM而不需要堆栈的实时操作系统。它容易使用,能够帮助你为嵌入式系统快速开发出强大的、可靠的且易于维护的应用程序。它可裁剪,适应能力非常强,几乎能用于任何处理器,从PIC到奔腾。 为什么要使用Salvo? Salvo提供一个强大的、弹性的框架,在它上面你能快速地构建你的程序。如果你面对一个复杂的设计并且性能有限的处理器,Salvo能最大程度地帮助你完成设计。 如果你想: 使你的嵌入式产品抢在竞争对手前头 在你的产品已有硬件基础上添加更多的软件功能 改进一个复杂设计的运转实时性 管理你的越来越复杂的程序 提高你的程序的可靠性 使你掌握多任务RTOS 大多数传统的单片机程序都是在主函数部分中构建一个超级循环,使用中断处理临界事件。这被称作前后台或超级循环系统,中断运行在前台,当没有中断产生时主循环运行在后台。在对程序的维护上,随着功能的增加,使得前台与后台之间的关系越来越复杂,维护越来越困难。RTOS宏观上是多个任务同时运行,内部任务之间使用信号量、消息和消息队列进行通讯和资源共享,增加一个功能只需增加一个任务,任务的运行由系统内核管理,使得维护变得容易。 低成本的单片机是有能力实现实时控制应用的,但对它们编程是一个挑战,实时的内核能够简化复杂软件的设计,然而不幸的是,多数商业化的RTOS需要大量的ROM和RAM,Salvo改变了这些,Salvo将使你的程序运行的更快,它提供给你一个明白而又容易理解的多任务程序框架,只用很少的空间完成你的工作。 Salvo与其它的RTOS的不同点 Salvo是一个并发式的RTOS,因此必须明确地管理任务的切换,每个任务必须至少进行一次上下文切换。 只能在任务中而不能在函数中进行上下文切换,这是因为单片机的堆栈很小。 对比其它需要大量RAM的并发式或抢占式RTOS,Salvo可能是你唯一的选择。 Salvo需要哪些资源? 在单片机上,一个典型的多任务程序,Salvo代码可能需要占用大约1K ROM每个任务大约占用4-12个字节,每个事件3-4个字节另外需要4-6个字节去管理所有的任务、事件和延时。如果你计划使用延时和超时服务,Salvo需要提供一个中断信号,但这个中断信号不必专门给Salvo使用,也同时用于其它方面。任务和事件的数量仅仅受内存的限制。 使用Salvo需要哪些知识? 1、C语言的知识,但即使你是一C语言的初学者,你学习Salvo也不应该感到很困难。 2、一些RTOS的基本知识。 下面结合一个实际进行介绍,本设计使用一片AVR单片机ATmega16,它是mega系列的主流型号,性价比高,具有16K的flash,512字节的EEPROM,1K字节的RAM,没有扩展外部了ROM和RAM便可运行RTOS,完成点阵扫描和红外线遥控调整时间、安全天数。显示内容:“今天是:xxxx年xx月xx日 星期x xx时xx分,当前气温xx.x℃ 已安全运行:xxxx天。”从右向左流滚动显示。 一、硬件的组成及工作原理 (1)CPU控制板:原理见图一,以ATmega16为核心,扩展一片4-16译码器CD4514,驱动ULN2003完成LED的行扫描。实时时钟由DS1302及3.6V充电电池组成,掉电时时钟仍能工作。J3是ISP程序下载接口,J4是程序调试接口,J8是外接调整按钮,不用遥控器也能手动调整参数,J5是一体化红外线接收头。ATmega16具有硬件的SPI接口,可直接驱动串行移位芯片74HC595。 (2)LED显示板:原理见图二,由16块8*8LED点阵拼结而成,可同时显示4个汉字,8片74HC595完成显示屏的列驱动。 两块电路板之间用40芯的排线联接,在CPU的内部RAM开辟一块显示缓存区,CPU控制板读取flash内部的汉字点阵编码,写入到显示缓存区,然后读取显存中第一行数据,通过SPI接口驱动74HC595,将串行数据转为并行,然后将接通对应的行,显示1ms后,取下一行的数据,同样显示1ms,直到第16行,完成一次扫描。再把显存中的数据整体左移一位,再扫描一遍。如此把全部的汉字依次移入显存并显示,便实现了汉字从右向左移,全部汉字移完后对时间、温度和安全天数的寄存器刷新一次。 二、程序的基本结构 首先,根据功能上的独立性划分任务,分为:时间读写、温度采集、LED扫描显示、日期天数调整和被调参数闪烁等五个任务。其次确定任务的优先级,时间读写、温度采集8级,日期天数调整和

文档评论(0)

hkfgmny + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档