[[ANT]] 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のRX, TXは リマップ可能なピンに割り当てて使用します。 uart.c にピンアサインを記述したパートがあります。実際の回路に合わせて リマップピンのアサインを変更して使用してください。~ ANTモジュールの RTSは、サンプルでは RA3に割り当てて、ソフトウェアでポーリングしています。ハードウェアフローは使用していません。実際の回路に合わせて変更してください。 使用例; #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; // ハードウェアの初期化コードを挿入してください // 各ポートの入出力モードや オープンドレインの有無など... // uart_init( 38400, 0 ); // UARTレジスタの初期化 // 注) ANTモジュールと 38400bpsで通信するには チップ抵抗の実装が必要です OpenANT(); while(1) { if ( s = BC_ANT_RecvPacket( buffer, MAX_BUFSIZE )) { // ANTチップからのデータ受信時の処理... // パケットを受信したときや ANTチップからのイベントの処理を記述します } } }