2015/08/23(日)BASCOM AVRでWS2812 Rainbow LEDを点灯させる(ATtiny2313)
このWS2812なるLEDはシリアルパルスでLow/Highを送るのだが、その幅が0.8usや0.4usという極小幅なのでBASCOM AVRでは不可能。そこでWS2812へパルス出力部分だけをインラインアセンブラで記述した。レインボーなパターン部分をBASICで記述出来るのは素晴らしい。
パターンを出すメインルーチン
Do
Wr = Rnd(255)
Wg = Rnd(255)
For I = 0 To 255 Step 2
Wb = I
Gosub Ws2812
Waitms 20
Next I
For I = 255 To 0 Step -2
Wb = I
Gosub Ws2812
Waitms 5
Next I
Loop
簡単にい書いたのでポートはPIN:9(PORTD:5)に決め打ちしているけれど、見れば簡単に変更出来る位小さく作った。
BASICのソースリストはws2812.bas
2003/07/27(日)AVR Monitor AVRとシリアル通信

AVRのチップには何かと面白い機能が満載だ。しかし、まだ全てを把握していない為、何度も「プログラム修正」→「書き込み」→「テスト」を繰り返しているとこの作業が面倒になってきる。そこで、シリアルの回路を先に作って、PCとRS-232Cで接続して任意のポートにデータを書き込める簡単なモニタープログラムを作ってみた。
PC側の画像 ソースは例のavr-gccで作成。これはブレッドボード上の画像
2003/07/07(月)AVRのCコンパイラ avr-gccを使って蛍光表示管の表示テスト
使ったコンパイラはavr-gccである。AtmelのAVR-Studioではない。