« 2006年03月 | メイン | 2006年05月 »

2006年04月26日

「Let'snote」新製品が発表されました

Let'snoteの新製品(Y5,W5,T5,R5)が発表されました!
今回は特にY5がCPUにCore Duoを採用したり、全面防滴になるなど大幅に機能アップしており注目です。W5などのシリーズはCPUにCore Soloを採用で消費電力が減少、バッテリーの持ち時間が従来品よりさらに延びています。
これは買いかも・・・?

(以下、参考ページへのリンク)

◆メーカーホームページ(レッツノートY5)

◆松下、「Let'snote」新製品発表会

◆今度の「Let's note」は水にも強い――松下が2006年PC夏モデルを発表

◆松下電器産業、“Let'snote”シリーズ4製品の夏モデルを発表

2006年04月22日

PICマイコン関連のリンク集

PICマイコンの役立つ情報が公開されているページをまとめてみました。

◆PIC-TECH ( Junk box )
※アセンブラでプログラムを書く上でのエッセンスが大量にあるのでお勧めです。


◆電子工作の実験室 (PIC、マイコン、ラジコン、EDA、VHDL、CPLD)
※有名、定番のサイト。情報量の多さには驚きます。


◆PIC入門 ( 趣味の電子工作 )
※わかりやすい命令一覧やさまざまな作品の製作事例がのっており、役立つ情報がたくさんあります


◆PICな日曜日
※PICのことが順を追って記録されているので読みやすいです


◆オーディオクラフト工房
※主にオーディオ関係の電子工作にPICを使われています。PIC16F88最強伝説のコーナーにはさまざまな作品集が紹介されているのでおすすめ。


2006年04月21日

簡単なアセンブラでの条件分岐

PICマイコン(Peripheral Interface Controller)のためのプログラムをアセンブラで書いていくとき、どうすれば条件分岐ができるのか最初はとまどいます。
まずは基本的なものを書いてみます。

条件分岐の発展系はこちらから

C言語などで、
if( TEST_VAR == 10 ) {
    //何かの処理
}

などというようなことをアセンブラしたい場合はどのようにすればよいのでしょうか?
※変数TEST_VARが10かどうかで処理を変えたいときはどうすればよいのか

TEST_VAR = 10 ということは、 TEST_VAR  - 10 =  0
ということなので、10をひいて、その値が0かがわかればどうにかできます。
これはPICのゼロフラグ(Z)をチェックすることによって解決できます。

今回のプログラムでは、TEST_VARが10かどうかで、ポートBの出力が 変わるようになっています。
よって、ポートにLEDでもつないでおけば確認がしやすいでしょう。


以下がサンプルです。実験用に作ったものを多少変更して載せているだけですが、
参考にしていただければ幸いです。

※PIC16F88で動作確認したスクリプトを単純化しました


◆サンプルスクリプト
ポイントとなる部分は以下のあたりです。

▲値のセット
MOVLW D'10'   ;ここに好きな値をセットして試してみてください
MOVWF TEST_VAR

▲比較の実行
MOVF TEST_VAR,W   ;「Wレジスタ = TEST_VAR」
SUBLW D'10'   ;「Wレジスタ = 10 - Wレジスタ」ここが比較したい値
MOVWF TEST_VAR2   ;「TEST_VAR2 = Wレジスタ」
MOVF TEST_VAR2,F   ;自分自身にコピー(Zフラグを調べたいから)
BTFSS STATUS,Z   ;Zフラグが1なら(TEST_VAR2が0なら)TEST_TTには行かない
GOTO TEST_TT  ;TEST_VARが10以外のとき(TEST_VAR2を調べた結果、Zフラグが0のとき)はここが実行されてTEST_TTラベルに飛びます

;TEST_VARが10のときの処理を以下に書いておけばよい
GOTO TEST_TT2



◆関連記事
条件分岐の発展系

※なにぶん初心者なもので、間違いもあるかもしれませんがご容赦ください。

アセンブラでの条件分岐その2

PICのためのプログラムをアセンブラで書いていくとき、どうすれば条件分岐できるかわからなくなりそうだったのでメモとして残しておきます。(ほとんど自分用(苦笑))

C言語などで、
if( TEST_VAR > 10 ) {
    //何かの処理
}

などとしたい場合はどのようにすればよいのでしょうか?

TEST_VAR > 10 ということは、 TEST_VAR  - 10 >  0
ということなので、10をひいて、その値が正か負かがわかればどうにかできます。
これはPICのキャリーフラグ(C)をチェックすることによってどうにかできます。

今回のプログラムでは、TEST_VARが10より大きいかどうかで、ポートBの出力が 変わるようになっています。
よって、ポートにLEDでもつないでおけば確認がしやすいでしょう。

比較した後、10以下ならTEST_VARに1を足して、TEST_VARが10より大きくなるまで 永遠に比較を続けるというプログラムです。



以下がサンプルです。実験用に作ったものを多少変更して載せているだけですが、
参考にしていただければ幸いです。

※PIC16F88で動作確認したスクリプトを単純化しました


◆サンプルスクリプト

ポイントとなる部分は以下のあたりです。

▲値のセット
MOVLW D'8'   ;ここに好きな値をセットして試してみてください
MOVWF TEST_VAR

▲比較の実行
;引き算の結果が0または正のとき、Cフラグは1 ?
;引き算の結果が負のとき、Cフラグは0 ?


MOVF TEST_VAR,W   ;「Wレジスタ = TEST_VAR」
SUBLW D'10'   ;「Wレジスタ = 10 - Wレジスタ」ここが比較したい値

;Cフラグが1なら(TEST_VARのほうが大きかったら)TEST_TTには行かない
;ここをBTFSCとすれば、条件を逆にできる

BTFSS STATUS,C
GOTO TEST_TT  ;TEST_VARが10より大きいときはここが実行されてTEST_TTラベルに飛びます

;TEST_VARが10以下のときの処理 if(TEST_VAR<=10) {
INCF TEST_VAR,F   ;TEST_VAR++



※なにぶん初心者なもので、間違いもあるかもしれませんがご容赦ください。

2006年04月10日

無料ホスティング「XREA」が利用不能の状態に

xreaでメールがつながらない・・・。
SSLでサイトにつながらない(https://ss1.xrea.com/〜でアクセスするとつながらないことがある)
と思っていたらなんと問題が発生していました。

◆詳細はこちらの記事参照
無料ホスティング「XREA」が利用不能の状態に、復旧は11日以降の見込み

上位レジストラの誤認のようです。
早く直してもらいたいものです。

上位レジストラは「法務担当部署は週末で既に休業中であるため対応できない。月曜日にあらためて対応する」という対応になっているという。
上位レジストラの対応がいい加減すぎorz


◆XREAにもお知らせが出ています
「xrea.com」を含むURLのアクセス障害について