几周来我拿着一本《实践的日子和作业》(技能手册)一向忙个不断,直到昨夜在布赖顿,我才总算完成了项目,完毕了这种繁忙的日子。
eve一向在查验他的音频固件晋级主意是否可行:并不是像80年代人们运用ZX Spectrum那样,这儿需求用squeaks和farts上传Arduino“草图”。当然,用文字描述看起来没什么稀罕,不过eve的这种办法却蕴藏的无限或许和巨大潜力,我想他不会中止对其进一步探究的脚步。
与此同时,世界飞行学会联合会(lain)需求一个简略的项目——磁铁操控型马达操控器。咱们现已画好了PCB并经过在面包板上验证无误,所以现在剩余的作业便是固件编码。
(留意:大类型场效应MOSFET管IRF640用作马达操控器,而不是简略的NPN型晶体管。原因之一:假如选用小型200mA 2N2222A,那么马达就会分得更大的电流,而此处选用的MOSFET管内部含有一续流二极管,可用于反映理性负载的电流改变)
而事实上操控器的原理十分简略——在霍尔效应传感器上方放置一磁铁则发动马达;再次将磁铁接近传感器则封闭马达。一般两级状况机的操控选用这种办法。可是咱们还需求留意以下几个方面:
首要,用PP3电池为马达供电。
因而首要保证PIC微操控器没有独占整个电池供能,此外微操控器应不时对霍尔传感器的输入引脚状况进行查询,包含不需求时将PIC切换到睡觉状况。当然,这也意味着需求设置唤醒中止,将微操控器切换到作业形式。
下面是咱们遇到的状况:
下面这几点值得一提
a) 选用内联汇编。运用Oshonsoft编译器的长处在于,简略经过运用汇编完毕标志和汇编指令,就能够在根本代码中参加汇编语言。要留意,在汇编句子和指令之间有必要运用Tab跳格或空格,不然编译器会将下一个字符默以为标签,而非指令。
b)选用INTCON.IOCIE = 1操控中止。例如,IOCAN.5 = 1指令让A5引脚变成低电平(衔接电动机寄存器的上升沿叫做IOCAP)时,设备进入中止状况。值得幸亏的是这个中止指令也能够用于设备唤醒。
c)虽然增加了注释,测验时咱们仍是对“关机”程序进行了测验(经过使LED闪耀数次来提示设备行将进入睡觉状况)。事实证明,用这种办法表现设备是否进入睡觉形式很见效(设备也的确没有运转任何进程)。查看办法是:注释掉“关机”以及LED闪耀指令,并增加ASM:SLEEP睡觉句子注释。此刻LED应当闪耀,1至2秒左右的推迟后再次闪耀(固件运转正常状况时)。此刻假如再次启用睡觉句子,则LED只会闪耀一次:由于睡觉句子禁用了程序履行权限。
当然,启用中止指令时应保证其他闲暇的输入引脚被浮置,避免意外触发中止。虽然IOCAN寄存器仅屏蔽输出被监测的引脚状况,但保证上拉电阻关于任何输入引脚都能正常作业也不是坏事,咱们仅仅以防万一。
所以几杯茶的时间,咱们就完成了这个适当简略的项目。当然,咱们也和那些书呆子瞎说了半响。编写固件和测验完成后,剩余的便是给世界飞行学会联合会(lain)发送邮件,期望咱们的效果对他们有所协助。