[讨论] 只为uC而生,uS成长历程 17(通知:关于直播的时间)

辛昕   2013-8-17 00:10 楼主
还好,赶得上00点之前发。

天天晚上这么发直播,其实是挺累的,而且占用了太多时间。坚持了半个月实在辛苦。
几经思考,终于下定决心。

以后,把直播周期从 每天一播 改为 每周一播。

理论上来说,直播会在周五到周日之间出现,如果那一周进展比较好,当然也可能出现几个直播贴,因为有些内容确实分几个贴写比较合适。
但不管怎么说,俺坚持一周至少一贴。

这样也许会不那么水,实际一点。
当然我还是得一两天至少做一两个小时才能保证周末的直播内容~~

周末有两天,所以这一周的更新内容还会写在这个帖子的下面。
本周争取把 uSConsole部分完成。
有时间的话,还会把这一部分整理好,因为我已经发现原有的框架和结构又需要调整了。
一经调整好,原定计划的uSCore也就完成了。也就是uS v0.2可以释出了!


辛昕决不放弃,依然与你共呼吸......这话怎么说的我好像要死了似的,额~~不过话说回来,网络和书本相比最好的地方就是,你随时可以和这个人交流。

说说为啥这个时候才发的原因
晚上下班回家,刚到村口发现不对劲所有人都在天桥上不知干嘛。回头一看,啊噢,岑村停电了。

在村口吃完快餐后,想了想,我走出来坐车,打算随便找个有KFC或者M记的地方。
因为我手头还拿着一本 死沉死沉 的 Hayt的工程电路分析——不然今天晚上就荒废了。

后来我去了车陂。在一个站看到有家KFC,就下车了。
然后想了想到超市里买了笔和本子。

后来出来时发现出口有一家小咖啡厅,里面没人,很好。
我想了想就要了一杯拿铁,然后坐在里面看书。

这本书果然是全美经典,没辜负偶的一番期望和67快的昂贵价格......

我有了一种看小日本的晶体管放大电路书籍的感觉,而且觉得这本的层次更在 铃木雅臣 之上。
因为它不断强调 模型 和 假设

这对我很有启发的作用
也正是在这个地方,我开始意识到,我居然从来没有测试过 超声波发射头和接收头的 阻抗特性,只是猜测或者用别人的电路来进行改造.....真是见鬼。


好了,不岔开说太多了。

[ 本帖最后由 辛昕 于 2013-8-18 21:28 编辑 ]

回复评论 (10)

今天晚睡,想到你每天发贴,特意过来看看,果然C到了!
点赞  2013-8-17 01:35
你们为什么这么有激情
点赞  2013-8-17 09:17

回复 板凳常见泽1 的帖子

没激情就彻底完蛋了
点赞  2013-8-17 11:39

回复 4楼辛昕 的帖子

看来我已经完蛋了
点赞  2013-8-17 14:45

接收搞定了(低级错误再度出没)


是的,你没有看错。

在我一点一点检查整个uS——其实,我最初这么做的本意是想 检查一下现有结构应该该怎么改善来着......
谁知道我看着看着,就发现了这个问题。

        所有一切都是,因为我把 累加超时定时器 的 函数 和 Console的测试函数 放错地方了。
它们本该放在 uSTask里,我却错放在 uSTask_Add里——这个函数是用来收集所有需要.....

        恩,看到没,直到现在,我还依然被它骗了......一个函数的名字是会把人骗到 海誓山盟终不悔 神马的.....

这不是在给自己犯错找借口——事实上,找出犯错的原因,要远比改正错误来得重要得多。


         这个uSTask_Add其实,只是为了把上一个部件里,把用于Timer测试的LED函数指针 加入到这个源文件里的函数指针里,以减轻实际定时器中断函数的运行时间......

          可我偏偏命名为 uSTask_Add,于是让我误以为,凡是要放在Task里扔到定时器中断运行的函数加进去就好了。

         事实上,我真正用来收集这些要加到定时器里运行的函数应该是它接下去的一个
         void uS_TaskList(void);

         所以,之前出不来效果,所有问题只是因为......超时判断机制压根没有被正确安装。到了这一步,我们已经决定了这个功能里最重要的一步。
接下去,只不过是要根据接收的信息,做一个简单的命令解释 功能 而已,那么,这个uSConsole的部件就大体完成,可以进入 微循环 的 重构步骤了。

不过,千万不要忘记,立马改正发现的问题,我们要给这两个函数取个恰当的名字!!

[ 本帖最后由 辛昕 于 2013-8-17 22:44 编辑 ]
点赞  2013-8-17 22:39

改动其实可以很简单

是的,真的很简单

我只是给它换了个名字

从  uSTask_Add 到 Led_Add2List;

[ 本帖最后由 辛昕 于 2013-8-17 22:50 编辑 ]
点赞  2013-8-17 22:47
命令行解释部件 还有点问题。
今晚到此为止了。
点赞  2013-8-17 23:38

简单说一下, 完成uSConsole 命令解释函数

搞了好一段时间的 命令解释这个函数。

这里的测试其实很简单。

就是 当外部输入一句 “Is there anyone?“时,
uS就会回复一句:     ”Hello,uS-v0.2!“

现在稍微回顾一下,我最后发现,核心来说,问题出在判断接收到的数据是否要求的那句 问话(或者理解为以后的通用命令格式)
  1. #define SOMEONE_CALL "Is there anyone?"

  2. U8 Is_SomeoneAsk(U8 *Carrier)
  3. {
  4.    if(IsBufferSame(Carrier,SOMEONE_CALL,sizeof(SOMEONE_CALL) - 1) == 1)
  5.       return 1;
  6.    else
  7.       return 0;
  8. }
一开始我下意识写的最后一个参数是
sizeof(SOMEONE_CALL)
我没有 减1.

我在一点一点尝试的时候发现错误的。

后来我想明白了减一的原因。

因为字符串的长度包含了最后的结束符 0
然而,接收的数组却只复制了这串数据——这是通过串口接进来的。
它不等同于真正的C语言里出现的 字符串。因此不会自动补上一个结束符。

这就是问题所在。
点赞  2013-8-18 21:21
至此,这个uSConsole基本完成。
距离us v0.2释出的距离是,我发现存在挺多需要调整的部分。

此外,一个我早就想做的部分也到了要提上议程了。
那就是如何加强测试。

下午我在试着解决这个其实挺简单的函数时,发现我很难测试开去。
而这也是我要在这个uS里特别加强的一部分。

在我的原计划里,我如果不是在uS里实现一个类似于 Unity一类的测试框架,就是要为它引入这个测试框架。

也许,实现一个uC框架的自动测试,是一个挺新的想法。

不过今晚都9点半了。
而这一周的成果也算是有点能交代了,就先放下。

周一愉快。
点赞  2013-8-18 21:25

回复 沙发cat3902982 的帖子

太谢谢你了!
我一直以为,我发的帖子啰嗦又水,过了最初的那种非我本意的新意过后,就再也没有人看或者仔细看内容了。
点赞  2013-8-18 21:31
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复