ikkei blog

電子工作やパズルのブログです。主にLEDを使った電子工作をやっています。

ArduinoのMsTimer2ライブラリについて

2013年01月31日 01時29分04秒 | Arduino
2009年の終わり頃にArduinoを始めたので、たぶん2010年だったと思うけど、
LEDのダイナミック点灯をするために、Arduinoのホームページにある
MsTimer2と言うライブラリを使っていました。

Charlieplexingを知ったのもこの頃で、
販売されていたLoL Shield もCharlieplexingを使っていることが分かりました。

そこで、LoL Shield を買って作ってみて、ライブラリの参考にしようと思って
ライブラリのソースを見てみたら、MsTimer2ライブラリのデッドコピーでした。

さらに、詳しくソースを読んでいくと、
Timer2に1msの値をセットして、タイマー割り込みが掛かると
なんと、再度1msの値をソフトでセットしていました。
ソフトでセットすると、その分が誤差になり、それが累積していきます。

こういう場合、普通のマイコンでは誤差の累積を防ぐために、
ハードウェアで自動的にタイマに再セットされるモードを使います。

AVRには、それが無いのかと思ってデータシートを読んだら、
CTCモードと言ってハードウェアで再セットするモードがTimer2にもありました。

では、なぜMsTimer2はCTCモードを使わないのだろうと思っていたところ、
CTCモードを使っていると詳しく説明しているサイトがありました。

それは違う、MsTimer2はCTCモード使ってないよと指摘したら、
どうやら、CTCモードを当然使っているはずだと思って書いていたらしい。

そしたら、その人はCTCモードを使うようにMsTimer2を書き換えて作者にメールしてくれました。
しかし、2年経った今もまだ放置されたままです。 orz

CTCモードが理解できないのか、修正するのがめんどくさいのか分かりませんが、
Arduinoのライブラリやスケッチの中には、結構酷いものが混じっています。

ちなみに、私の「ちっちゃいーの」や「ikkeiplexing shield」のライブラリに
含まれているMsTimer2はCTCモードに書き直された方を使っています。

でも、Charlieplexingのライブラリの中身は、まだC++のクラスになっていません。
なんとかしたいと思っているんですが..... (^_^;

これって、PICアセンブラの仕様ですか.... orz

2013年01月30日 23時20分52秒 | 組み込みソフト
出来たら、PICの変態アセンブラには触りたく無かったのですが、
お仕事ですから、仕方がない。

しかし、前任者のコードを解析していたら、またバグを見付けてしまった。
(以前の無限ループと同じ作者)

MOVF BUF + 11, W

って、普通に画いたら、16進だなんて、こりゃダメだ。
なんとも酷い仕様ですね。

MOVF BUF + D'11', W

と書かないといけないみたいです。
あるいは、デフォルトの設定を10進に変えるとか.....
普通、デフォルトで10進でしょ。

出したデバイスをディスコンにしない会社なので、
昔のコードも通るようにしているのだと思いますが、
しがらみで身動きできないWindowsと同じ構図。

幸い?、この部分は実行されない(だから発覚もしない)ことが分かったけど、
早く解析を終えて、Cで書き直したいです。

LEDを使った電子工作は定番のサイコロ

2013年01月28日 00時18分28秒 | 電子工作
先日、ブレッドボードで作っていたのは
電子工作では定番のサイコロでした。


昔の回路はHPで見てもらえば分かりますが、
ステートマシンのロジックを簡単にするためにJK-FFを使っていましたが、
今時の設計では、多少ロジックが複雑になってもD-FFしか使わないので、
再設計を思いついた訳です。

ロジックは少し複雑になりましたが、ICは3個のまま増えていません。

先日のデジットの超高輝度LEDの写真

2013年01月27日 01時08分15秒 | 電子工作
先日のデジットの超高輝度LEDの写真を撮り直して来ました。

赤スモークの品番は、AL-513TRD-50-002 でした。

そしたら、その後ろの拡散フラットというのが気になったので買ってみました。

頭が平らなのでフラットなのですが、拡散ってどういう風に光るのでしょうか?


点灯してみました。

例によって、電流は1mAです。
左から、秋月、フラット拡散、スモークです。

拡散と言っても、やはり素子が光っているのが透けて見えています。

新年会

2013年01月26日 23時50分43秒 | その他
本日は、今年最初の月例会(飲み会とも言う)でした。
昨年末は、かに道楽へ行こうとして、道頓堀の3店とも玉砕してしまったので、
今回はcdeさんが予約してくれました。

さらに、久々にLBJさんも参加とあって、
奮発して、かにすきコースにしました。

鍋は撮ってなかった orz