这些天做测速器,卡住了,很郁闷。

具体情况是Attiny45的external interrupt有些妖,我明明设置了只有pin4可以响应pin change,结果pin3,pin4都可以响应。在中断程序中我要读取计时器来确定pin change响应间隔,结果值一直为0,设为violate也无用。另外USB也时不时的断线,有时候断后要过一会才能连接上(电容的缘故么?)。看来系统不稳定,最怕这种事情。唯一确认的是pin change可以捕捉到,调试的LED也是有频率的闪动。想调试吧,软件USB不可靠,UART接口attiny45没有,手头有个atmega8l,阵脚多,有uart口,兴匆匆在taobao上买了个uart-usb转接口,焊好后发现这芯居然没有pin change中断,悲剧啊。

中断在这里用的很合适,attiny45也有很多用在工业马达控制上的,就是新手难以驾驭啊。

一直在关注Arduion,用的也是avr方案,而且封装的不是很厉害,有点avr经验的就会发现好多东西是一样的。比如这里测速的话直接用pulseIn方法,返回就是时间,也不用操作寄存器,多简单,去tmd的中断。

Arduion用的语言跟C极为相似,我怀疑是不是就是几个宏而已。当然,操作也简化了很多,函数库有具体含义的方法名,比操作神马DDRB更明了。如果这种语言能翻译成C代码就好了,这样菜鸟可以学习,也好用到成品中去。

taobao上买了个国产的,88¥,比意大利产200¥便宜,当然YY度也少了。玩单片机后发现这东西折腾起来花不了多少钱,不像电脑硬件,一个普通的显卡就得1000¥。富玩表,穷玩车,宅男玩电脑,我看这些都是穷人玩不起的。我单片机100个电阻2¥,谁比我便宜啊?搞错了、搞坏了也不纠结不后悔,扔掉再买,哥不差钱。

其实最好折腾的是软件……好吧,再说。