Ryoji Sakai
/
bc_ant-sample
initial revision
Homepage
bc_antを使うサンプルコード
#include "mbed.h" #include "bc_ant.h" DigitalOut myled(LED1); Serial pc(USBTX, USBRX); // USBTX - Tranmit on USB USBRX - receive on USB bc_ant antPort(p13, p14, p15); // for BC-ANT-SERIAL #define MAX_BUFSIZE 64 #define ANT_CH 0 #define DEVICE_NUMBER 65 /** * Recieved a message from ANT port. */ void receivedFromAnt() { uint8_t receivedLength = 0; uint8_t receivedBuffer[MAX_BUFSIZE]; receivedLength = antPort.BC_ANT_RecvPacket(receivedBuffer, MAX_BUFSIZE); printf("RX(%3d):", receivedLength); for (int index = 0; index < receivedLength; index++) { printf("%02x ", receivedBuffer[index]); } printf("\r\n"); } /** * Moving command received from HOST */ void sendToAnt(uint8_t *buffer) { antPort.ANT_SendAcknowledgedData(ANT_CH, buffer); } /** * initializes ANT port */ int initialize_ANTport(bool isReceive) { antPort.ANT_ResetSystem(); if (isReceive == true) { // receiver mode antPort.ANT_AssignChannel(ANT_CH, ANT_Bidirectional_Slave, 0); } else { // sender mode antPort.ANT_AssignChannel(ANT_CH, ANT_Bidirectional_Master, 0); } antPort.ANT_SetChannelId(ANT_CH, DEVICE_NUMBER, 1, 1); antPort.ANT_SetChannelPeriod_Hz(ANT_CH, 4); antPort.ANT_SetChannelRFFreq(ANT_CH, 4); // 2404 MHz antPort.ANT_OpenChannel(ANT_CH); if (isReceive == true) { // receiver mode antPort.attach(&receivedFromAnt); } else { // sender mode uint8_t buffer[MAX_BUFSIZE] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; antPort.ANT_SendBroadcastData(ANT_CH, buffer); } return (0); } /** * Main Routine */ int main() { pc.baud(9600); // set serial speed between PC and mbed. initialize_ANTport(true); // initialize BC-ANT-SERIAL for printf("--- READY ----\r\n"); while(1) { myled = 1; wait(0.2); myled = 0; wait(0.2); } }