一直以来,我几乎天天都在想着写一本书,写写我这一辈子最钟爱的一件事——驾驶飞机遨游蓝天!希望通过这本书激励其他工程师能像我一样敢于冒险、实现梦想——学习飞行,成为私人飞机驾驶员。然而,有限的实际飞行经历还不能让我成为一名值得信赖的飞行专家。因此,当有机会撰写一本关于Microchip最新的16位PIC24微控制器的书籍时,我忍不住想尝试将编程和飞行结合起来。毕竟,学习飞行也要遵循一个成熟的训练过程,即人们熟悉新技能并超越自身极限的一个历程。它通常引导你通过一定的理论学习和实际操作,才能获得初级飞行员的资格。飞行员资格实际上只是一个崭新冒险过程的起点,有人说那是继续学习的资格。其实,飞行学习的过程和学习新的编程技巧或者掌握新型微控制器功能的过程是极其相似的。
我将这两个学习领域的平行式比拟贯穿于全书,并在每一章的参考文献中也介绍一些飞行读物。如果读者真的有这种飞行梦想,希望本书能激发起读者的好奇心,给读者以梦想成真的学习动力。
读者定位
我本该在这里告诉读者:在阅读本书的时候,你将会体验到很多有趣的软件和硬件实验,而且会学习到如何在全新的16位RISC处理器上从零开始使用C语言编程。但是,说实话,我没法这么说,因为这不是十分准确。真心希望读者在阅读本书的时候能够体验到更多的乐趣、感受更多的趣味实验。不过,读者必须做些准备工作并努力学习,才能消化本书内容,经过前几章介绍后内容难度会很快加大。
本书是为具有初级和中级编程能力的人员编写的,不适合纯粹意义上的“新手”。因此,本书不会从最基础的二进制数、十六进制符号以及编程基础知识开始讲授。不过,在介绍难度较大的项目之前,本书将简单地介绍C语言的编程基础,因为它和最新的通用16位微控制器应用密切相关。本书尤其适合下列4类人员。
·嵌入式控制程序员:具有基于汇编语言的微控制器编程经验,但对C语言编程只有基本的认识。
·PIC微控制器专家:对C语言编程有基本的了解。
·学生或专业人员:对PC的C(或C++)编程有一定知识。
·其他高手:鉴于程序员不喜欢被简单地分类,所以特意为读者创造了这个类别!
不同层次和经验的读者,都可以在各章中找到感兴趣的内容。本书将尽量保证在每一章中都安排关于C语言编程技巧和新型外围硬件设备的介绍。如果读者对相关内容都已经熟悉了,完全可以跳到每一章最后针对专家的部分,或者思考附加练习,甚至进一步地研究/阅读参考书目和网上链接。
本书将介绍以下内容。
·嵌入式控制的C程序结构:循环,循环,再循环。
·基本的计时和I/O操作。
·使用PIC24的中断实现C语言的基本嵌入式控制的多任务。
·新的PIC24外围设备(以下不分顺序)。
·输入捕获。
·输出比较。
·改变通知。
·主并行端口。
·异步串行通信。
.·同步串行通信。
·模数转换。
·如何控制LCD显示。
·如何生成视频信号。
·如何生成音频信号。
·如何访问大容量媒介。
·如何与PC实现大容量设备的文件共享。
本书结构
像飞行课程一样,本书由三部分组成。第一部分由5个难度逐渐递增的章节组成。其中每一章都会介绍PIC24FJ128GA010微控制器的一个基本外围硬件设备和一个C语言问题。而且,在每一章中至少会开发一个演示项目。开始时,这些项目需要使用MPLAB SIM软件仿真器,除了可能用到Explorer16演示板外,不需要其他真实的硬件设备。
本书的第二部分由5个章节组成。因为某些外围设备需要真实硬件进行测试,所以Explorer16演示板(或者相似的第三方设备)在这部分会变得更重要。
本书的第三部分包括5个内容更为丰富的章节。每一章的内容都建立在过去章节介绍的课程之上,同时因为开发项目的复杂性提高,还增加了新的外围设备内容。本书第三部分的项目需要用到Explorer 16演示板和基本的焊板知识(读者可能需要用到电烙铁)。如果读者想避免麻烦,或者尚没有基本的硬件焊接工具,可以从网站http://www.flyingthepic24.com上找到一个能满足全部演示项目需要的电路和元件扩展板。
每一章给出的所有源代码也已包含在本书附属资源内,读者可以登录图灵公司网站(http://www.turingbook.com),免费注册后下载。
不要误解了本书
本书不能代替Microchip公司出版的PIC24数据表、参考指南和程序员手册,也不能代替MPLABC30编译器的用户指南及Microchip提供的所有程序库和相关软件工具。整本书会经常提及上述文件和工具,而且必要时将给出方框图和摘录。本书的叙述不能代替官方网站或者用户指南上提供的信息。读者应该注意本书的表述是否和官方文档上有分歧,必须随时参考最新材料。如果确实发现有不一致的地方,请读者一定要用电子邮件告诉我。我将不胜感激,并且会在网站http://www.flyingtheoic24.com上发布收到的所有纠错信息和实用提示。
本书也不能作为C语言的初级读本。虽然在前面的部分章节中对C语言作了一些回顾,但是读者可以在参考资料部分列出的课程和图书中找到更完善的介绍。
备忘录
无论是专业还是业余的飞行员,在每次飞行前或者飞行中,都会按照备忘录来完成每个操作。这并不是由于那些操作步骤长得无法记忆,又或者是飞行员的记忆力比其他人差。原因在于:研究表明人的记忆是会衰退的,尤其是在承受压力的时候,因此飞行员都会使用备忘录。使用备忘录也会使他们比其他专业人士犯的错误更少,飞行员可是将保证安全看得比什么都重要的。
当然,作为程序员,在使用PIC24进行开发编程时,即使多做或者忘记了做什么,也不会发生什么致命危险。不过,本书还是为读者准备了一些简单的常用编程和调试任务的备忘录。希望这些备忘录能在读者刚开始学习新PIC24工具时提供帮助——甚至在以后像作者一样同时面对不同厂家的开发环境和多个项目时,仍然能够派上用场。