Today's the day

向软件大牛炫耀我会焊单片机,向硬件大牛炫耀我会写 Rails,向软硬件大牛炫耀我生物,向软硬件生物大牛炫耀我会折腾期货 -_-bbb

犯了一系列愚蠢的错误……

在个小 CPU 上写个读 EEPROM 的代码,每页 EEPROM 有 256 个字节,循环依次读出来,于是顺手一写:

for( i = 0; i < 256; i++ )
{
     read_eeprom();
     ...

执行之后却没有效果,debug 发现 read_eeprom() 这个函数根本就没有执行,for 循环根本没进去……

愣了半晌,顿悟。因为是一块 8 位的 CPU,所以 256 越界了,被当成 0 了,自然执行不了。

于是立刻顺手一改:

for( i = 0; i <= 255; i++ )
{
     read_eeprom();
     ...

心想这下肯定没问题了~

结果发现写了 256 个数据之后还在写,循环跳不出去了。

愣了两个半晌才醒悟,这次是 i 越界了,8 位的无符号整数数自然永远小于等于 255,汗……

这样的话要咋办捏,难不成要写成:

for ( i = 0; i <= 255; i++ )
{
     read_eeprom();
     if(i == 255)
          break;
     ...

嗯,看上去很郁闷……

最后,终于彻底醒悟:

for( i = 1;  i;  i++ )
{
     read_eeprom();
     ...

 基础啊基础……


Update: 除了发现上面最后一条又写错之外,还是老老实实用 do_while 了:

do{
   read_eeprom();
   i++;
}while(i);

 

 

终于搞了个热风枪

电路板上的贴片元件,往上焊,很简单,但往下拆,就不那么容易了。

尤其是那种 100 脚的 QFP……

几次向老大提出去买个热风枪,不过老大的观点是: 高手可以用电烙铁搞定一切。

可惜我们都不是高手,在目睹了老大几次花费一整天来用电烙铁拆 IC,最后不是把 IC 引脚搞断,就是把焊盘拔脱落之后,实在忍不住了,自己偷偷去搞了个热风枪。

这东西还真好用,四边引脚的 小 IC 吹两下就可以滑下来了。

不过有的两边 IC,竟然没吹下来,嗯嗯,晚上继续练习一下……

又一本不错的硬件入门书

那就是 《电子电气工程师必知必会》:

 

很薄的一本小册子。

如果你不是科班出身,只有一点电子学的基础知识,再摸过一阵硬件(比如我 :),那么非常推荐阅读此书。

作者会以诙谐的语言告诉你,其实那些看似枯燥的电子学知识 “并没有那么难”。

最可贵的是,和《嵌入式硬件设计》一样,其中穿插了作者在工作中各个方面的经验教训,这些东西教科书上可没有

刚刚读完此书,硬件的世界在我的眼前又明朗了一些~

最后再附上 《嵌入式硬件设计》 的封面:

 

两本硬件入门经典~

第一块板子出炉

新年新气象,09 年的第一天感觉不错,这个折腾了一个多星期,自己完成设计(在大牛的指导下)、布线的第一张电路板终于出炉了~ 特此纪念一下~

幸运的是虽然有些设计上的瑕疵,但是上电之后马上就欢快的跑起来了,当时那个感觉还真是相当得好~

至此,整个软硬件的选型、设计、布线、加工、焊接全部都熟悉了一遍,现在很有自己制作新硬件的冲动~

接下来继续写软件,内外开攻~

初窥硬件的世界

前阵子学习了不少嵌入式 Linux 的知识,不过可惜目前的项目完全用不到。

只用到一块 Luminary 的小处理器,最大 50MHz 的速度,64KB 的 RAM,来驱动 CCD 和计算数据,一下子变成单片机的活了~

原来见都没见过的示波器、万用表、烙铁,这次竟然全都摸了一遍~

对于专业人士来讲,这个项目是个非常简单的工作,不过对我这个硬件白痴来说,基本上都是新鲜的东西,庆幸当初最先把那本《数字电路》的书啃完,让我没有多少理论上的障碍。

一个星期下来,除了自己焊制电路板,其他的都玩熟练了,收获相当的大。

当初买了本《嵌入式硬件设计》,第一次看的时候,大部分内容不知所云。现在再看,里面的内容简直就像为我设计的~

目前还缺乏一些电子学的知识,除了欧姆定律之外就不知道了,继续啃书~


一直都有一种局限感,不管是拿 Rails 做网站,还是写桌面应用程序,乃至学习 Linux 驱动的时候,心里一直在嘀咕:写这些东西就是我今后所期望的生活吗。

这次初窥了下硬件的世界,这种感觉终于消失了……

原来局限感是来自于没有联系。

希望有一天,我能够自己制作一个有趣的硬件,再为他写一个 Linux 驱动程序,然后再通过 GUI 前端跑在桌面上~