KXL 1.x.x解説

  • KXLの概要
  • とりあえず作ってみる
  • ビジュアル関連の解説
  • サウンド関連の解説
  • その他の解説


  • KXLの概要

      元々これはGeki2 Ver0.8.7までに使用していた描画系と音系の関数郡でしたが、これらをライブラリ用に手直ししたものです。出来としてはGeki2やGeki3、SpaceAryarya等を見てもらえば分かると思います。それで、気づいたと思いますが、これらにはボタンやラベル、ファイル選択と言った、いわゆるウィジェットはありません(必要ない?)1枚のウィンドウと1枚のピックスマップ及び簡易サウンドのみで簡単なゲームを楽して開発しちゃおうと言う事です。あまりXlibを意識しなくても簡単にプログラミング出来るようにしたつもりです。イメージとしては下図のようになります。
     
               Window                 Frame              Image
            __________________     __________________     ____
           /                 /    /            _____/____/_  /
          /                 /    /          __/_   /    /___/
         /                 /    /          / / /  / 
        /                 /    /          /___/  /      Text
       /          <------/----/            ____ /______"HelloWorld"
      /                 /    /            /    /
     /                 /    /       HelloWorld/
    /_________________/    /_________________/


    とりあえず作ってみる

    #include <KXL.h>
    #include <stdio.h>

    int main(void)
    {
      KXL_Rect rect = {
        0,    /** 左   **/
        0,    /** 上   **/
        100,  /** 幅   **/
        100   /** 高さ **/
      };
      Bool flag = False;

      /**
      *** 100x100でウィンドウを作成する
      *** イベントは再描画イベントとキー押下のみ受け付ける
      *** リターンキーが押されたら終了する
      **/
      KXL_CreateWindow(100, 100, "sample",
                       KXL_EVENT_EXPOSURE_MASK |
                       KXL_EVENT_KEY_PRESS);
      while (flag != True) {
        /** イベントループ **/
        while (KXL_CheckEvents()) {
          /** イベントを取得する **/
          switch (KXL_GetEvents()) {
          case KXL_EVENT_EXPOSE: /** 再描画イベント **/
            /** フレームをクリアする **/
            KXL_ClearFrame(rect);
            /** 「sample」を描画する **/
            KXL_PutText(30, 50, "sample");
            /** フレームをウィンドウに反映させる **/
            KXL_UpDate(rect);
            break;
          case KXL_EVENT_KEY_PRESS: /** キー押下イベント **/
            /** リターンキーが押されたら終了 **/
            if (KXL_GetKey() == KXL_KEY_Return)
              flag = True;
            break;
          }
        }
      }
      /** ウィンドウを閉じる **/
      KXL_DeleteWindow();
      return 0;
    }

    まずはウィンドウを作成する。
      KXL_CreateWindow(100, 100, "sample",
                       KXL_EVENT_EXPOSURE_MASK |
                       KXL_EVENT_KEY_PRESS);
    これは幅100、高さ100の大きさのウィンドウで、タイトルバーに「sample」と表示し、イベントとして、再描画とキー押下を受け付ける、という設定です。この時点で同じ大きさのピックスマップ(以下フレームを言う)が作成されます。基本的にはウィンドウに直接描画するのではなく、一度フレームに描画してからフレームをウィンドウに反映させます。

    次にイベントの受け付けをします。
      while (KXL_CheckEvents()) {
        switch (KXL_GetEvents()) {
          case KXL_EVENT_EXPOSE: /** 再描画イベント **/
               :
          case KXL_EVENT_KEY_PRESS: /** キー押下イベント **/
               :
         }
      }
    KXL_CheckEvents()でイベントが発生したかをチェックします。イベントが何もなければwhileを抜けます。イベントが発生したならば、KXL_GetEvents()で何のイベントかを調べます。

    再描画イベント(KXL_EVENT_EXPOSE)が発生したらフレームに必要なものを描画していきます。まずフレーム全体をクリアします。
      KXL_ClearFrame(rect);
    rect構造体にフレームのどの部分をクリアするかを設定しておきます。この場合フレーム全体なので左=0、上=0、幅=100、高さ=100を設定します。

    フレームをクリアしたら文字列を描画します。
      KXL_PutText(30, 50, "sample");
    これはフレームの左上から左に30、下に50の位置に「sample」という文字を描画します。デフォルトのフォントセットは
    "-adobe-courier-bold-r-normal--14-*-*-*-*-*-iso8859-1"で、色は白になっています。

    フレームへの描画が終ったら、フレームをウィンドウに反映させます。
      KXL_UpDate(rect);
    rect構造体にフレームのどの部分をウィンドウに反映させるかを設定しておきます。この場合フレーム全体を反映をさせるので左=0、上=0、幅=100、高さ=100を設定します。

    キー押下イベント(KXL_EVENT_KEY_PRESS)が発生したらどのキーが押されたかを判定します。
      if (KXL_GetKey() == KXL_KEY_Return)
        flag = True;
    KXL_GetKey()で押されたキーを取得し、それがリターンキー(KXL_KEY_Return)ならばflagにTrueをセットします。これでループから抜けます。

    最後にウィンドウを閉じます。
      KXL_DeleteWindow();

    以上簡単なサンプルプログラムの解説です。どうです、簡単でしょ?
     
     

     戻る


    ビジュアル関連の解説

  • ウィンドウの作成
  • ウィンドウの削除
  • ディスプレイの指定
  • ウィンドウの更新
  • フォントの指定
  • フレームのサイズ変更
  • 描画色の設定
  • 点の描画
  • 線の描画
  • 連続した線の描画
  • 長方形の描画
  • フレームの消去
  • BMPイメージの読み込み
  • イメージの描画
  • イメージの矩形指定描画
  • イメージのコピー
  • イメージの拡縮
  • イメージの削除
  • テキストの描画
  • テキストの横幅の取得
  • イベントの有無
  • イベントの取得
  • キーコードの取得
  • マウス情報の取得


  • ウィンドウの作成
    void KXL_CreateWindow(Uint16 width, Uint16 height, Uint8 *title, Uint32 event)
    〔引数〕
        width        ウィンドウの幅を指定
        height       ウィンドウの高さを指定
        *title        ウィンドウのタイトルを指定
        event        ウィンドウのイベントを指定
    〔戻り値〕
        なし

    この関数はウィンドウ及びフレームを作成する為の関数です。
    イベントは以下のものを論理和で組み合わせて指定します。
      KXL_EVENT_KEY_PRESS_MASK       キーが押された時
      KXL_EVENT_KEY_RELEASE_MASK     キーが離された時
      KXL_EVENT_BUTTON_PRESS_MASK    マウスのボタンが押された時
      KXL_EVENT_BUTTON_RELEASE_MASK  マウスのボタンが離された時
      KXL_EVENT_BUTTON_MOTION_MASK   マウスのボタンを押しながら移動した時
      KXL_EVENT_EXPOSURE_MASK        再描画の要求があった時
    ゲームを作る上でこれぐらいしか使わないだろうと思ったのでこれしかありません(^^


    ウィンドウの削除
    void KXL_DeleteWindow(void)
    〔引数〕
        なし
    〔戻り値〕
        なし

    この関数はウィンドウを閉じる為の関数です。
    必ず最後に呼び出して下さい。


    ディスプレイの指定
    void KXL_DisplayName(Uint8 *name)
    〔引数〕
        name    ディスプレイの名前
    〔戻り値〕
        なし

    この関数はウィンドウを表示するディスプレイを指定する為の関数です。
    KXL_CreateWindow関数を呼び出す前に使用します。
    例えば表示したいディスプレイの名前(Xのホスト名)が「ks.com」ならば
    KXL_DisplayName("ks.com:0.0");
    KXL_CreateWindow(〜);
    というように使用します。


    ウィンドウの更新
    void KXL_UpDate(KXL_Rect rect)
    〔引数〕
        rect    フレームの矩形
    〔戻り値〕
        なし

    この関数はフレームをウィンドウに反映させる為の関数です。
    まずKXL_Rect構造体を使用してフレームの左、上、幅、高さを指定します。
    ウィンドウ及びフレームの大きさが100x100で、フレーム全体をウィンドウに反映させる場合は
    rect.Left   = 0;
    rect.Top    = 0;
    rect.Width  = 100;
    rect.Heigth = 100;
    と、なります。フレームのrectで指定した矩形がウィンドウの左上(0、0)を視点として反映されます。


    フォントの指定
    void KXL_Font(Uint8 *name, Uint8 r, Uint8 g, Uint8 b)
    〔引数〕
        name     フォント名
        r        赤の輝度
        g        緑の輝度
        b        青の輝度
    〔戻り値〕
        なし

    この関数はフォントの名前、色を指定する為の関数です。
    nameはデフォルトでは"-adobe-courier-bold-r-normal--14-*-*-*-*-*-iso8859-1"�となっているので変更したく無い場合はNULLを渡します。
    r,g,bの各輝度はある程度(?)はプレーン数を自動で識別して変換してくれるので、例えば黄色にしたい場合はr=0xff,g=0xff,b=0x00とし、プレーン数が8、16、24でもこのままの値でOKです。


    フレームのサイズ変更
    void KXL_ReSizeFrame(Uint16 width, Uint16 height)
    〔引数〕
        width     フレームの幅
        height    フレームの高さ
    〔戻り値〕
        なし

    この関数はKXL_CreateWindowで作成されたフレームのサイズを変更する為の関数です。
    シューティングゲーム等で画面外のキャラの描画処理等にウィンドウの大きさでは不足になる事があるので、そのような時に使用して下さい。


    描画色の設定
    void KXL_SetDrawColor(Uint8 r, Uint8 g, Uint8 b)
    〔引数〕
        r        赤の輝度
        g        緑の輝度
        b        青の輝度
    〔戻り値〕
        なし

    この関数はフレームの消去、点描画、線描画、長方形描画時の描画色を設定する為の関数です。
    r,g,bの各輝度はある程度(?)はプレーン数を自動で識別して変換してくれるので、例えば黄色にしたい場合はr=0xff,g=0xff,b=0x00とし、プレーン数が8、16、24でもこのままの値でOKです。
    デフォルト値は黒(0x00,0x00,0x00)です。


    点の描画
    void KXL_DrawPoint(Uint16 x, Uint16 y)
    〔引数〕
        x        X座標
        y        Y座標
    〔戻り値〕
        なし

    この関数は任意の場所に点を描画する為の関数です。
    描画色はKXL_SetDrawColor関数で設定してある色です。
    例えば赤色で100、100の位置に点を描画したい場合は
    KXL_SetDrawColor(0xff,0x00,0x00);
    KXL_DrawPoint(100,100);
    となります。


    線の描画
    void KXL_DrawLine(Uint16 left, Uint16 top, Uint16 right, Uint16 bottom)
    〔引数〕
        left      左
        top       上
        right     右
        bottom    下
    〔戻り値〕
        なし

    この関数は任意の場所に線を描画する為の関数です。
    描画色はKXL_SetDrawColor関数で設定してある色です。
    例えば赤色で100、100の位置から200、200の位置へ線を描画したい場合は
    KXL_SetDrawColor(0xff,0x00,0x00);
    KXL_DrawLine(100,100,200,200);
    となります。


    連続した線の描画
    void KXL_DrawPolygon(KXL_Polygon *data, Uint16 max)
    〔引数〕
        data      座標データのポインタ
        max       データ数
    〔戻り値〕
        なし

    この関数は任意の場所に連続した線を描画する為の関数です。
    KXL_Polygonの内容は以下の通りです。
    typedef struct {
        Uint16 x;
        Uint16 y;
    } KXL_Polygon;

    描画色はKXL_SetDrawColor関数で設定してある色です。
    例えば赤色で三角形((0,100),(100,0),(200、100))を描画する場合は
    KXL_Polygon data[3] = {
        {0,100},{100,0},{200,100}
    };
    KXL_SetDrawColor(0xff,0x00,0x00);
    KXL_DrawPolygon(data, 3);
    となります。


    長方形の描画
    void KXL_DrawRectangle(Uint16 left, Uint16 top, Uint16 width, Uint16 height, Bool flag)
    〔引数〕
        left      左
        top       上
        width     幅
        height    高さ
        flag      塗りつぶし指定
                      True  = 境界内を塗りつぶす
                      False = 境界内を塗りつぶさない
    〔戻り値〕
        なし

    この関数は任意の場所に長方形を描画する為の関数です。
    描画色はKXL_SetDrawColor関数で設定してある色です。
    例えば赤色で100、100の位置から100x100のサイズで長方形(塗りつぶす)を描画したい場合は
    KXL_SetDrawColor(0xff,0x00,0x00);
    KXL_DrawRectangle(100,100,100,100,True);
    となります。


    フレームの消去
    void KXL_ClearFrame(KXL_Rect rect)
    〔引数〕
        rect    フレームの矩形
    〔戻り値〕
        なし

    この関数はフレームを消去する為の関数です。
    消去色はKXL_SetDrawColor関数で設定してある色です。
    例えば赤色で0、0の位置から100x100のサイズを消去したい場合は
    KXL_Rect rect;
    rect.Left   = 0;
    rect.Top    = 0;
    rect.Width  = 100;
    rect.Heigth = 100;
    KXL_SetDrawColor(0xff,0x00,0x00);
    KXL_ClearFrame(rect);
    と、なります。


    BMPイメージの読み込み
    KXL_Image *KXL_LoadBitmap(Uint8 *filename, Uint8 blend)
    〔引数〕
        filename     bmpファイル名
        blend        透明色の番号
    〔戻り値〕
        KXL_Imageへのポインタ

    この関数はbmpファイルを読み込み、指定した透明色の番号を透明にし、KXL_Image構造体へ格納する(以下イメージと記す)為の関数です。
    KXL_Imageの内容は以下の通りです。
    typedef struct {
      Pixmap Buffer;    bmpのイメージが格納されている
      Pixmap Mask;      bmpのマスクイメージが格納されている
      GC     MaskGC;    bmpのマスク用GC
      Uint16 Width;     bmpの幅
      Uint16 Height;    bmpの高さ
    } KXL_Image;
    これらは全て参照のみです。

    この関数を使用する場合の注意点としては、bmpファイルは4bpp(16色以下)か8bpp(256色以下)で作られていなければなりません。また、X Window Systemが16か24ビットカラーで起動していなければなりません。


    イメージの描画
    void KXL_PutImage(KXL_Image *img, Sint16 x, Sint16 y)
    〔引数〕
        img      イメージ
        x        フレームに描画するX座標
        y        フレームに描画するY座標
    〔戻り値〕
        なし

    この関数はイメージ全体をフレームに描画する為の関数です。
    透明色も自動で処理されます。


    イメージの矩形指定描画
    void KXL_PutRectImage(KXL_Image *img, KXL_Rect rect, Sint16 x, Sint16 y)
    〔引数〕
        img      イメージ
        rect     イメージの矩形
        x        フレームに描画するX座標
        y        フレームに描画するY座標
    〔戻り値〕
        なし

    この関数はイメージの全体又は一部分をフレームに描画する為の関数です。
    透明色も自動で処理されます。


    イメージのコピー
    KXL_Image *KXL_CopyImage(KXL_Image *img, KXL_Rect rect)
    〔引数〕
        img       コピー元のイメージ
        rect      コピー元のイメージの矩形
    〔戻り値〕
        KXL_Imageへのポインタ

    この関数はイメージの全体又は一部を他のイメージにコピーする為の関数です。
    例えば48x16のイメージがあるとします。このイメージは16x16のキャラが横に4つ並んでいます。このキャラを個別のイメージにコピーしたい場合に使用します。
    サンプルコード
    KXL_Image *all;
    KXL_Image *chr[4];
    KXL_Rect rect;

    int i;

    all = KXL_LoadImage("alll.xpm");
    for (i=0; i<4; i++) {
      rect.Left   = i*16;
      rect.Top    = 0;
      rect.Width  = 16;
      rect.Height = 16;
      chr[i] = KXL_CopyImage(all, rect);
    }
    と、なります。


    イメージの拡縮
    KXL_Image *KXL_StrechImage(KXL_Image *img, Uint16 width, Uint16 height)
    〔引数〕
        img       拡縮前のイメージ
        width     幅
        height    高さ
    〔戻り値〕
        KXL_Imageへのポインタ

    この関数はイメージを任意のサイズに変換し、他のイメージにコピーする為の関数です。


    イメージの削除
    void KXL_DeleteImage(KXL_Image *img)
    〔引数〕
        img      イメージ
    〔戻り値〕
        なし

    この関数はイメージを削除する為の関数です。
    KXL_LoadBitmap関数を使用した場合、終了時には必ず実行して下さい。


    テキストの描画
    void KXL_PutText(Sint16 x, Sint16 y, Uint8 *str)
    〔引数〕
        x         描画するX座標
        y         描画するY座標
        str       描画する文字列
    〔戻り値〕
        なし

    この関数は文字列を描画する為の関数です。
    文字列には2バイトコード(日本語)は指定出来ません。(いずれは対応させるつもりです。。。)
    描画時のフォント及び色はKXL_Fontで指定したフォント及び色です。


    テキストの横幅の取得
    Uint16 KXL_TextWidth(Uint8 *str)
    〔引数〕
        str        描画する文字列
    〔戻り値〕
        描画時の横幅

    この関数は文字列を描画した時の横幅を求める為の関数です。
    文字列には2バイトコード(日本語)は指定出来ません。(いずれは対応させるつもりです。。。)
    描画時のフォントはKXL_Fontで指定したフォントで、横幅はそのフォントにより変化します。


    イベントの有無
    Bool KXL_CheckEvents(void)
    〔引数〕
        なし
    〔戻り値〕
        True  - イベント発生
        False - イベント無し

    この関数はイベントの有無をチェックする為の関数です。
    イベントが複数発生した場合は複数回Trueが返るのでwhile等で処理をします。

    サンプル
      while (KXL_CheckEvents()) {
        switch (KXL_GetEvents()) {
                    :
        }
      }


    イベントの取得
    Uint16 KXL_GetEvents(void)
    〔引数〕
        なし
    〔戻り値〕
        イベント
          KXL_EVENT_KEY_PRESS       キーを押した
          KXL_EVENT_KEY_RELEASE     キーを離した
          KXL_EVENT_BUTTON_PRESS    マウスボタンを押した
          KXL_EVENT_BUTTON_RELEASE  マウスボタンを離した
          KXL_EVENT_BUTTON_MOTION   マウスのボタンを押しながら移動した
          KXL_EVENT_EXPOSE          再描画

    この関数はイベントを取得する為の関数です。


    キーコードの取得
    Uint16 KXL_GetKey(void)
    〔引数〕
        なし
    〔戻り値〕
        キーコード
          KXL_KEY_BackSpace
          KXL_KEY_Tab
          KXL_KEY_Return
          KXL_KEY_Escape
          KXL_KEY_Delete
          KXL_KEY_Home
          KXL_KEY_Left
          KXL_KEY_Up
          KXL_KEY_Right
          KXL_KEY_Down
          KXL_KEY_F1
          KXL_KEY_F2
          KXL_KEY_F3
          KXL_KEY_F4
          KXL_KEY_F5
          KXL_KEY_F6
          KXL_KEY_F7
          KXL_KEY_F8
          KXL_KEY_F9
          KXL_KEY_F10
          KXL_KEY_F11
          KXL_KEY_F12
          KXL_KEY_Shift_L
          KXL_KEY_Shift_R
          KXL_KEY_Control_L
          KXL_KEY_Control_R
          KXL_KEY_Space
          KXL_KEY_Exclam
          KXL_KEY_Quotedbl
          KXL_KEY_Numbersign
          KXL_KEY_Dollar
          KXL_KEY_Percent
          KXL_KEY_Ampersand
          KXL_KEY_Apostrophe
          KXL_KEY_Quoteright
          KXL_KEY_Parenleft
          KXL_KEY_Parenright
          KXL_KEY_Asterisk
          KXL_KEY_Plus
          KXL_KEY_Comma
          KXL_KEY_Minus
          KXL_KEY_Period
          KXL_KEY_Slash
          KXL_KEY_0
          KXL_KEY_1
          KXL_KEY_2
          KXL_KEY_3
          KXL_KEY_4
          KXL_KEY_5
          KXL_KEY_6
          KXL_KEY_7
          KXL_KEY_8
          KXL_KEY_9
          KXL_KEY_Colon
          KXL_KEY_Semicolon
          KXL_KEY_Less
          KXL_KEY_Equal
          KXL_KEY_Greater
          KXL_KEY_Question
          KXL_KEY_At
          KXL_KEY_A
          KXL_KEY_B
          KXL_KEY_C
          KXL_KEY_D
          KXL_KEY_E
          KXL_KEY_F
          KXL_KEY_G
          KXL_KEY_H
          KXL_KEY_I
          KXL_KEY_J
          KXL_KEY_K
          KXL_KEY_L
          KXL_KEY_M
          KXL_KEY_N
          KXL_KEY_O
          KXL_KEY_P
          KXL_KEY_Q
          KXL_KEY_R
          KXL_KEY_S
          KXL_KEY_T
          KXL_KEY_U
          KXL_KEY_V
          KXL_KEY_W
          KXL_KEY_X
          KXL_KEY_Y
          KXL_KEY_Z
          KXL_KEY_Bracketleft
          KXL_KEY_Backslash
          KXL_KEY_Bracketright
          KXL_KEY_Asciicircum
          KXL_KEY_Underscore
          KXL_KEY_Grave
          KXL_KEY_Quoteleft
          KXL_KEY_a
          KXL_KEY_b
          KXL_KEY_c
          KXL_KEY_d
          KXL_KEY_e
          KXL_KEY_f
          KXL_KEY_g
          KXL_KEY_h
          KXL_KEY_i
          KXL_KEY_j
          KXL_KEY_k
          KXL_KEY_l
          KXL_KEY_m
          KXL_KEY_n
          KXL_KEY_o
          KXL_KEY_p
          KXL_KEY_q
          KXL_KEY_r
          KXL_KEY_s
          KXL_KEY_t
          KXL_KEY_u
          KXL_KEY_v
          KXL_KEY_w
          KXL_KEY_x
          KXL_KEY_y
          KXL_KEY_z
          KXL_KEY_Braceleft
          KXL_KEY_Bar
          KXL_KEY_Braceright
          KXL_KEY_Asciitilde

    この関数はキーイベントが発生した時のキーコードを取得する為の関数です。


    マウス情報の取得
    Uint16 KXL_GetButton(Uint16 *x, Uint16 *y)
    〔引数〕
        x        マウスのX座標を格納するポインタ
        y        マウスのY座標を格納するポインタ
    〔戻り値〕
        押した、又は離したマウスのボタン番号

    この関数はマウスイベントが発生した時のマウス情報を取得する為の関数です。
     
     

     戻る


    サウンド関連の解説

  • サウンドの初期化
  • サウンドの終了
  • サウンドの再生


  • サウンドの初期化
    void KXL_InitSound(Uint8 *path, Uint8 **fname)
    〔引数〕
        path     wavファイルの置いてあるパス
        fname    wavファイル名
    〔戻り値〕
        なし

    この関数はサウンドサーバーの初期化をする為の関数です。
    サウンドサーバーを新たにプロセスを発生させて処理しています。サウンドは最大で16個同時に再生出来ます。対応しているファイル形式はwavのみで、cat 〜.wav > /dev/dspとした時に正常に再生出来るサンプリングのみです。ステレオ再生は出来ません。sox等で変換して下さい。
    設定方法は、例えばwavファイル「bomb.wav」「bgm.wav」「attack.wav」が/usr/local/games以下にある場合は
    Uint8 *fname[]={"bomb", "bgm", "attack", ""};

    KXL_InitSound("/usr/local/games", fname);
    とします。これで3つの音が鳴らせるようになります。
    但し、ファイル数の上限は16です。


    サウンドの終了
    void KXL_EndSound(void)
    〔引数〕
        なし
    〔戻り値〕
        なし

    この関数はサウンドサーバーを終了させる為の関数です。


    サウンドの再生
    void KXL_PlaySound(Uint16 no, KXL_Command action)
    〔引数〕
        no       サウンドファイル番号
        action   再生コマンド
           KXL_SOUND_PLAY        noで指定したサウンドを1回だけ再生
           KXL_SOUND_PLAY_LOOP   noで指定したサウンドを繰り返し再生
           KXL_SOUND_STOP        noで指定したサウンドを停止
           KXL_SOUND_STOP_ALL    全てのサウンドを停止
    〔戻り値〕
        なし

    この関数はサウンドを再生、停止させる為の関数です。
    サウンドファイル番号をKXL_InitSoundで設定したファイル数を0から数えます。3つ設定した場合は0〜2の間で指定します。全てのサウンドを停止させる場合はサウンドファイル番号は無視されます。最大で16のサウンドが再生されます。
     
     

     戻る


    その他の解説

  • タイマー割込みの設定
  • タイマー割込み発生の有無
  • タイマー割込みのリセット


  • タイマー割込みの設定
    void KXL_Timer(Uint16 time)
    〔引数〕
        time    設定タイマ値
    〔戻り値〕
        なし

    この関数は1秒間に何回割込みを発生させるかを設定する為の関数です。

    1秒間に30回処理を行う時のサンプル

        KXL_Timer(30);
        while (1) {
            /* タイマー割込みが発生するまで待機する */
            if (KXL_GetTimer() == False)
               continue;
            /* タイマー割込みのリセット */
            KXL_ResetTimer();
            /* 処理 */
        }


    タイマー割込み発生の有無
    Bool KXL_GetTimer(void)
    〔引数〕
        なし
    〔戻り値〕
        タイマー割込み発生の有無
        Trueで割込み有り、Falseで割込み無し

    この関数はタイマー割込みが発生したかを調べる為の関数です。


    タイマー割込みのリセット
    void KXL_ResetTimer(void)
    〔引数〕
        なし
    〔戻り値〕
        なし

    この関数はタイマー割込みをリセットする為の関数です。
     
     

     戻る