• 3
  • 1月

其实,在这个一年交替的时刻,已经不是十分太想去总结或计划些什么了。

其实,在八月份的时候,已经对自己的这三年多做过一次比较系统的总结了。

但不论如何,总是要写些什么的吧。最好是写些成就性的吧,不要一到总结都是在总结那些没完成的,打击自己信心的事。

2011年,最有成就的,应该就是实现了自己一万米的长跑。还参加了珠海12月18日的国际半程马拉松比赛。当然,我报的是男子10公里组的。成绩嘛,53分24秒,313名(有2000人报名,折返点成绩20分19秒)。不是很好的成绩,但自己也比较满意了吧。这也算是我的第一次当运动员了。

2011年,第一次出国。去了柬埔寨吴哥窟。第一次体会到异域的风土人情,其实也是蛮不错的一次感受。

2011年,工作也还算顺利。尽管有太多的不尽人意,没有太令人振奋的消息,但总算也还过得不温不火。

2011年,没看入什么务实的技术书了。倒了看了几本务虚的书。反正蛮看看呗,人生就是要虚虚实实,实实虚虚的。

2011年,是浮躁的一年,做了许多浮躁的事。但同时,也是沉淀的一年,在浮躁的过程中,感觉自己也慢慢沉淀下来了。

第一次去澳门。说起来渐愧,来珠海三年多了,在元旦才是第一次去澳门。不过,这已经是算在2012了吧?

那么,我又该以什么样的心态,来渡2012年呢?

2012,不需要计划,只需要做最好的自己。

写在2012初

  • 16
  • 12月

版本是IAR720H
使用了下面一断程序

#define YEAR_DAYS       365<br />
#define FOURYEAR_DAYS   (YEAR_DAYS * 4 + 1)


猜猜FOURYEAR_DAYS值是多少?

按照Hanny最初的想法,结果应该是365 * 4 + 1 = 1461。

结果实际预处理的结果却是365 * (4 + 1) = 1825。

Hanny怀疑是宏嵌套的问题,于是又实验了

#define FOURYEAR_DAYS   (365 * 4 + 1)

结果,还是1825。

看来,IAR的预处理在乘和加的优先级上,优先计算了加!

多加个括号就可以了。要注意啊!

  • 13
  • 12月

这几天,有个同事问在GCC中,怎么给一段汇编的程序指令地址。

我就说先用.section定义一个段名,然后再在ld中进行定位。

结果,定义了一个段名后,dump出来的汇编程序中使用没有这段。

然后,才想起来,定义完段名后,还要定义段的属性。

.section test_sec, "ax"

主要就是为了告诉连接器这是一个需要分配空间的可执行的段。

特此记录,以免下一次忘记。

  • 21
  • 11月

2011年11月21日。

今天是值得纪念的一天。在跑步的时候,Hanny一直在幻想着,有一天能够跑完一万米。然而,就在今天,Hanny实现了!就在今天,Hanny拿下了10000米!

我们是从海滨公园那里开始跑的。然后沿着海边一直跑到了凤凰海域的驿站。然后再沿路返回,跑到海滨公园。全程11.2KM,历时67分20秒。

20111121.jpg

也就是在今天,Hanny在经历了一段很长的碌碌无为后,拿下了自己定的一个目标。希望还能再接再厉,实现更多自己的其它目标吧。

  • 11
  • 11月

这几天,Hanny稍微用了一下MMA7660传感器,详细阅读了一下MMA7660的DataSheet,又借着机会与FreeScale的工程师交流了一下,在这里总结一下MMA7660传感器的使用心得。

MMA7660是一款重力传感器,主要用于检测X、Y、Z三个轴所受到的加速度大小。检测范围是-1.5g ~ 1.5g,其中,g为一个重力加速度。

由于MMA7660比较低端,因此也只有6BIT的精度,而且输出值上还会有3个刻度的误差,因此在值的输出上,必须经过一个软件的均值滤波处理。一般来说,如果传感器只是应用于方位检测的话,8个值的滤波就够了。而用于动作检测的话,一般使用32阶的均值滤波。

MMA7660有两种工作模式,一个为Auto-Sleep,即Running模式。在该模式下,传感器可以配置较高的采样率。另一个模式为Auto-Wakeup,即Sleep模式。值得注意的是,该模式并非真正的休眠模式,而只是低速采样模式。在该模式下,能够有效地降低芯片的运行功耗。

MMA7660内部还支持几种常见的中断。在这里值得一提的就是Tap中断了。由于Tap是一个短时间的脉冲,因此只有在最高采样速率下,即120Samples/S下,才能够有效地触发Tap中断。

在动作检测的过程中,尽量采用的是相对的坐标值,而不是绝对的坐标值。因为在生产过程中,并不能保证传感器的绝对水平。

MMA7660的采用IIC的接口。IIC接口这里就不详细介绍了。Hanny在这里要说的是:在读取XYZ坐标的时候,最好采用的就是Multiple Byte Read的方式,这样才能保证XYZ三个坐标是同一次采样的结果。如果分开读取,则有可能读取到不同组的采样数据。

最后,总体来说MMA7660还是一颗比较低端的芯片,如果有高端应用的话,可以考虑使用MMA8452。

附:MMA7660的datasheet

MMA7660FC.rar (620.9 KB, 下载次数: 3756, 最后修改: 2012-02-29 23:19)