2014年8月9日

秦时明月,何时可掇

下午去电影院看了《秦时明月之龙腾万里》。我并不是该系列的爱好者,此前也从未涉猎过该系列任何形式的作品。看这部电影是应高中同学的邀请,本着“不看电影也可以见见同学”的心情走进电影院的。从《秦时明月》整个系列的评价以及本次观影的感受来说,这部影片在国内动画市场堪称翘楚,但也只能是关上门在国内玩,跟美式3D动画或是日式剧场版动画还有相当差距。

2014年6月24日

其来有自的音乐库(10)

差不多2个月没写博客了,明天又有一门很难的考试,今天却没心思复习,来填坑吧。

2014年4月20日

其来有自的音乐库(9)

又到了批量结课、交论文的时节,目前暂时只有一篇论文有头绪。

2014年4月14日

CC2530 2.5.1a 协议栈研究笔记(1) —— LED及按键驱动修改

ZStack协议栈为CC2530编写了一套操作系统并规定了数据收发的协议。这个片上系统工作的大致流程是:初始化各种板上硬件资源(LED、按键、串口、其他外设),初始化网络状态,根据设备类型进行组网或加入网络,最后正式开始运行这个系统——进入一个死循环不断轮询各种片上资源和设备,一旦其状态有所改变即在事件处理过程中执行相应的事件回调函数。

2014年4月8日

CC2530开发板基础实验(5)—— JoyStick

CC2530上有一个5向(上\下\左\右\中心)摇杆(Joystick)。而5个方向的输入并不是靠5个独立的IO口,而是用ADC采集P0_6口的电压值来判断的。这样做的好处是可以节省4个IO口。对摇杆的方向采集同样有轮询和中断两种方式,在ZigBee协议栈中使用的是轮询方式。我在试过两种方式后发现采用中断的效果并不好,想必这也是TI在协议栈中使用轮询的原因。这个问题先不展开,先来看看如何采集摇杆的方向。

2014年3月29日

CC2530基础实验(4) —— UART及温度传感器

UART是串口的一种异步通信方式(同步方式为SPI)。CC2530有UART0和UART1两个端口可用于串口通信,两个端口功能完全相同,可独立工作。

2014年3月22日

CC2530基础实验(3)—— 定时器

CC2530上共有T1~T4,4个定时器,另外还有诸如系统定时器、睡眠定时器、看门狗定时器等等。在不同的电源模式下可以使用不同速率的振荡器。晶振的精度高、能耗高、启动慢;RC振荡器的精度更低一些,能耗低,启动快。需要注意的是在射频传输时必须使用32M的晶振,而在要求低功耗又对精度要求不高的场景下可以使用RC振荡器。默认情况下,使用Active / Idel模式,32M晶振,振荡器速率为16M。

2014年3月20日

CC2530开发板基础实验(2)—— 按键的轮询及中断

我的开发板上只有一个按键S2和一个5向Joystick。Joystick涉及到ADC,暂时不去弄了。对于按键的处理可以采用两种方式:轮询和中断。轮询是一种低效的方式,CPU不断的访问每一个可能产生输入信号的管脚,如果有信号输入,那就做出相应的处理,否则访问下一个输入管脚。而中断方式则类似于C#里的事件绑定、Java里的观察者模式,当输入管脚、时钟等产生一个中断信号,CPU会中止当前正在处理的事务,转去执行中断源的程序。待处理完中断再继续之前中止的事务。这里我用的是“类似”,即它并不是一种多线程模式,如果在执行中断源的响应程序的过程中,又有新的中断,那么后产生中断会等待当前中断源的响应程序执行完毕才会执行。这个等待队列也是有限的,似乎只能容纳一个等待的中断源。

2014年3月11日

CC2530开发板基础实验(1)—— LED

LED的操作是最为基础的实验,但我在实验过程中仍然遇到了很多问题,而这些问题是不那么容易在网上找到解答的。本篇仅讨论代码,关于IDE的配置将在另外的文章中叙述。

首先,你需要正确的、与开发板配套的电路原理图,没有它,你会走很多弯路,极大地打击像我这样的连单片机都没玩过的新手。而我从导师手里拿到的就是CC2430的原理图,上面几乎所有的管脚的标注都是错误的。而你使用的板子未必跟我用的一样,下文出现的各个端口、管脚都需要根据你手头的原理图做适当的修改才能正确的运行起来。跟下面将列举需要注意的问题。

2014年3月9日

其来有自的音乐库(8)

总是刷那么几个网页也没意思,来更新博客吧。今天的主要内容是3部炼金术士的OST以及一些新增且乱入到前面序列的专辑。

2014年2月28日

其来有自的音乐库(7)

好久没更新博客了,隔壁邓大师自开博以来基本上都是1月2篇,真是比不了。我发现这个系列不太好写,主要是音乐库时不时地更新会打乱原来的专辑排序,这样就会有一些新的专辑插到以前写过的专辑中间。