技术
geduo4612
这个作者很懒,什么都没留下…
展开
-
关于条件编译的问题
这两天来忙活ucos-II在PIC18fxxx系列上的移植。在编译的时候老出现变量被多重定义的错误。花费了一天的功夫才成功编译通过,错误何在??就是因为没有搞明白条件编译的原理,二是对mcc18编译器的特点无知。下面学习条件编译方面的知识:【例6.6】使用条件编译命令解决由于文件包含而出现的变量重名问题。 设有头文件exemple6_6.h,其内容如下: # define R 6 float原创 2010-04-21 09:26:00 · 631 阅读 · 0 评论 -
MAPLAP开发环境中release模式和debug模式烧写.hex文件的不同之处
<br />昨天看了齐工的报告才知道release模式和debug模式烧写.hex文件的不同。<br />三:问题分析<br />1. PIC系列的仿真器和集成开发环境的情况:<br />Ø Release模式和Debug模式是有区别的;Release模式是只把代码烧录到单片机的flash区内,上电执行;而Debug模式除了烧录代码外,还会烧录一部分Debug调试代码到程序区的高地址区域,该部分代码可以通过仿真器和集成开发环境进行数据交换,完成仿真和在线调试功能。如图1、图2所示。<br />Ø 在debu原创 2010-06-23 15:27:00 · 3167 阅读 · 0 评论 -
自己写的简易多任务系统---基于pic18fxxx
这个工程只是实现了最简单的OS任务调度,对于理解任务调度有点帮助。其实就是从UC/OS-II里面摘出来的,没有原来的那么复杂,很精简,但道理上是一样的。工程中的CPU.C文件时直接拿Nathan Brown写好的,因为关于PIC任务切换时候到底需要保存那些寄存器,对于我来说难度不小。另外,主要是参考了这里,http://group.ednchina.com/999/20520.aspx关于Nathan Brown的;Nathan Brown的个人主页: http://www.sputnickonline.c原创 2010-08-23 11:28:00 · 649 阅读 · 0 评论 -
自己写的简易多任务系统---基于pic18fxxx
<br />这个工程只是实现了最简单的OS任务调度,对于理解任务调度有点帮助。其实就是从UC/OS-II里面摘出来的,没有原来的那么复杂,很精简,但道理上是一样的。工程中的CPU.C文件时直接拿Nathan Brown写好的,因为关于PIC任务切换时候到底需要保存那些寄存器,对于我来说难度不小。另外,主要是参考了这里,<br />http://group.ednchina.com/999/20520.aspx<br />关于Nathan Brown的;<br />Nathan Brown的个人主页: htt原创 2010-08-25 16:46:00 · 494 阅读 · 0 评论 -
程序=数据结构+算法
<br />这句名言,我现在品来很有感觉,看看uc/os-II里面那些就绪表、查找最高优先级任务等等,算法设计的非常巧妙,整个OS都是围绕着OS_TCB来运转的,任务需要通信,那就在建立个OS_EVENT,通过.*OSTCBEventPtr来连接任务与OS_EVENT。构造好数据结构很重要,关系到整个算法的设计。两者相辅相成的,看来要提升编程能力还得多研究算法。虽然看完了《数据结构》也学了基本的算法设计问题,但还没有真正体会到算法的美。准备在买本《算法导论》看看。The Art Of Computer Pr原创 2010-08-25 17:12:00 · 576 阅读 · 0 评论 -
信号反射
<br />突然想起来前几天调试CAN通讯的时候出现的BUG,那就是传说中的“信号反射”,也有称“振铃”的。错误刚出现的时候没有意识过来,还说怎么出现重复出现这么多条消息呢?光在书本上看到过这个概念,没有“实物”与之对应起来,所以现象出来了,却没能识别出来,可见知道不等于“会”啊~<br />那么什么是信号反射?传送门 那么解决问题的方法也就可以搜索出来, 加上“终端电阻”见这里 ,阻值一般为120欧姆,这是个经验值。果然,加上这个之后,立马解决问题。<br />原创 2010-08-25 18:09:00 · 502 阅读 · 0 评论