- 追加された行はこの色です。
- 削除された行はこの色です。
[[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の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;
// ハードウェアの初期化コードを挿入してください
// 各ポートの入出力モードや オープンドレインの有無など...
//
uart_init( 38400, 0 ); // UARTレジスタの初期化
// 注) ANTモジュールと 38400bpsで通信するには チップ抵抗の実装が必要です
OpenANT();
while(1) {
if ( s = BC_ANT_RecvPacket( buffer, MAX_BUFSIZE )) {
// ANTチップからのデータ受信時の処理...
// パケットを受信したときや ANTチップからのイベントの処理を記述します
}
}
}