「あねご」備忘録 -ソフトウェア編-

| | コメント(0) | トラックバック(0)
備忘録のために「あねご」ソフト作成時の特記事項を書いておこう。

1.I/Oポートの設定
マイコンのPC制御用I/Oポートを以下のように割り当てた。
電源スイッチの制御(出力): Port 4 bit 0-1
電源モニタ(USBの電源をモニタ。入力): Port A bit 5-6
上記のように入出力を設定。アセンブラで設定するところがあったのでそこを書き換える。データディレクションレジスタの相当するビットを'1'にすると出力になる。
Port A bit4は、Ethetコントローラのリセット信号に使用しているので出力にしておく必要がある。
-- RESETV.ASM
P4DDR        .EQU        H'FFFFC5    ;PORT4 データディクションレジスタ
PADDR        .EQU        H'FFFFD1    ;PORTA データディレクションレジスタ

    MOV.B    #H'FF,R0L
    MOV.B    R0L,@P4DDR:8        ;PORT4 0-7 OUTPUT
    MOV.B    #H'90,R0L
    MOV.B    R0L,@PADDR:8        ;PORTA 0-3:入力, 4:出力, 5-6:入力, 7:出力
--
2.HTTP/HTML受信処理
HTTP受信処理はサンプルプログラムそのままでOK。
受信されたHTMLの解析部分を変更。

(1)PCからの要求を解析 http.c  HttpService関数
(a)PCからステータス要求
PCからホーム(http://anego/)のURLを送ってくる。(受信パケットに"GET / HTTP/1"が含まれている)現在のステータスのHTMLを作成するのみで、PCに作成したHTMLを返送する。(http.c MakeHttpStr)

(b)PCから電源制御用要求
PCからURLとして押されたボタンの情報を送ってくる。このとき受信パケットに"GET /modify.cgi"が含まれているので、まずこの文字列があることをチェックし、あれば以下のボタンの情報がURLに含まれているか確認する。
ONボタン: ON_x (xはPC#。URL例: http://anego/modify.cgi?ON_1=ON)
停止ボタン: STOP_x (xはPC#。URL例: http://anego/modify.cgi?STOP_1=%92%E2%8E%7E)
強制OFFボタン: FOFF_x (xはPC#。URL例: http://anego/modify.cgi?FOFF_1=%8B%AD%90%A7OFF)

(2)電源スイッチ制御時間
「ON」と「停止」はチョイ押しでいいので1~2秒くらい。LCD用のダミー待ち時間関数があったので流用した。
            for(i=0; i<0x80; i++){
                LcdDummyWait(0x7fff);
            }
「強制OFF」は4秒以上。6秒くらいになる以下のようにした。
            for(i=0; i<0x300; i++){
                LcdDummyWait(0x7fff);
            }

3.文字列・日本語
(1)文字列の登録 http.c
(a)Ascii文字の場合
const CHAR *HttpMsg_1_1="<HTML><HEAD><TITLE>";
(b) Asciiではない文字を含む場合(日本語Shift-Jis等)
const CHAR HttpMsg_2_4[]={0x83, 0x7D, 0x83, 0x56, 0x83, 0x93, 0};

(a)の書き方ではコンパイラがShift JISを通さなかったので、JIS Codeを試してみた。できなくはなかったが、JIS CodeはESC(16進で0x1B)を使う漢字IN、漢字OUTが必要でさらに%、'、"等の記号を使う。複雑ながらHTML上は混在可能にはなってい るが、Cコンパイラはうまく通らないケースあり。PC用のCコンパイラの「LSIC86」は、%を通してくれなかった。デバッグが難しかったので Shift JISを(b)の表記で書いた。バイナリエディタでコードをコピーしてきた。

4.Main関数
LanHttpApp.cにある。LCD表示くらいしか変えてない。バージョンはLCD表示のコメントを書き換える。

5.デバック用機能
ディップスイッチの4をONにするとディップスイッチでPC電源状態をデバッグ用に返られる。1:PC#、2:PC#2に割り当て。

6.C言語/HTMLリファレンス
分からないところがあったらここを見た。 
(1)C言語: http://www5c.biglobe.ne.jp/~ecb/c/index.html
(2)HTML: http://www.tagindex.com/html_tag/index.html

トラックバック(0)

このブログ記事を参照しているブログ一覧: 「あねご」備忘録 -ソフトウェア編-

このブログ記事に対するトラックバックURL: http://osamaru.egoism.jp/mt/mt-tb.cgi/3

コメントする

ウェブページ

Powered by Movable Type 4.1

このブログ記事について

このページは、おさ。が2008年2月26日 23:44に書いたブログ記事です。

ひとつ前のブログ記事は「「あねご」の製作」です。

次のブログ記事は「「あねご」備忘録 -ハードウェア編-」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。