[[ANT]]

* PIC24F用ライブラリ [#m61839a4]
Microchip Technology社の 16bit マイコン PIC24FJシリーズ用ライブラリのサンプルコードです。 ソースコードは PIC24FJ64GA002で
コンパイル、実行させています。~
このページにあるライブラリは α版です。このコードは無保証です。また、バグが残っている可能性があります。

このサンプルでは、使用するCPUに応じて、インクルードするヘッダファイルを変更してください。~
サンプルは 下記の4つのファイルで構成されています。
- ant.h &ref(ant.h);
-- ANTチップに対する API関数等を定義したヘッダファイルです
- ant.c &ref(ant.c);
-- ANTチップに対する API関数の実行コード部です。実行には、uart.c で定義されている UART1 に対する関数が必要です
- uart.h &ref(uart.h);
-- UARTに対する API等を定義したヘッダファイルです
- uart.c &ref(uart.c);
-- UARTに対する API関数の実行コード部です

ant.c では ANTチップへ UARTを通じてコマンドやリザルトを送受信するために uart.c に書かれた uart1に対する関数を呼び出しています。
そのため、このサンプルでは、uart.c および uart.h も必要になります。~
uart.c では、送信はポーリングでアクセスしていますが、 受信では 割込み駆動にて受信していますので、割り込みを使用します。
uart.c では、送信はポーリングでアクセスしていますが、 受信では 割込み駆動にて受信していますので、割り込みを使用します。~
UARTのRX, TXは リマップ可能なピンに割り当てて使用します。 uart.c にピンアサインを記述したパートがあります。実際の回路に合わせて
リマップピンのアサインを変更して使用してください。~
ANTモジュールの RTSは、サンプルでは RA3に割り当てて、ソフトウェアでポーリングしています。ハードウェアフローは使用していません。実際の回路に合わせて変更してください。


*** 使用例 [#j474c6a8]


使用例;

  #include <ant.h>
  #include <uart.h>
 
  #define   DEVICE_NUMBER   31
  #define   MAX_BUFSIZE     32
 
  #define   ANT_CH          0
 
  unsigned  char buffer[MAX_BUFSIZE];
 
  void OpenANT() {
  //  0ch に通信パラメータを設定して、チャンネルをオープンする関数 
 
	ANT_ResetSystem();                                         // ANT デバイスをリセットする
 
	ANT_AssignChannel( ANT_CH, ANT_Bidirectional_Slave, 0) ;   // 受信用チャンネルとしてアサインする
	ANT_SetChannelId( ANT_CH,  DEVICE_NUMBER, 1, 1 );          // デバイス番号等のIDをセットする
 
	ANT_SetChannelPeriod_Hz( ANT_CH, 4 );                      // チャンネルピリオド 4Hzに設定 (デフォルトと同じなので省略可能)
	ANT_SetChannelRFFreq( ANT_CH, 4 );                         // 送受信する周波数を 2404MHz に設定する
 
 	ANT_OpenChannel( ANT_CH );                                 // チャンネルを開いて通信を開始する
 
        return;
  }
  
  void main () {
 
     int s;
  
    int s;
   
  //  ハードウェアの初期化コードを挿入してください
  //    各ポートの入出力モードや オープンドレインの有無など...
  //
  
     uart_init( 38400, 0 );            // UARTレジスタの初期化
                                       // 注) ANTモジュールと 38400bpsで通信するには チップ抵抗の実装が必要です
     OpenANT();
 
     while(1) {
         if ( s = BC_ANT_RecvPacket( buffer, MAX_BUFSIZE )) {
             // ANTチップからのデータ受信時の処理...
             // パケットを受信したときや ANTチップからのイベントの処理を記述します
         }
     }
 
  }


BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。
トップ   新規 一覧 単語検索 最終更新   最終更新のRSS