François .
/
testcanOK
can01.cpp
- Committer:
- bouguereau
- Date:
- 2011-08-24
- Revision:
- 0:d40cebe2b64e
File content as of revision 0:d40cebe2b64e:
#include "can01.h" Ticker ticker; DigitalOut led1(LED1); DigitalOut led2(LED2); // CAN_RS pin at Philips PCA82C250 can bus controller. // activate transceiver by pulling this pin to GND. // (Rise and fall slope controlled by resistor R_s) // (+5V result in tranceiver standby mode) // For further information see datasheet page 4 DigitalOut can_Pca82c250SlopePin(p28); // second can controller on these pins. Not used here. // CAN can1(p9, p10); // We use can on mbed pins 29(CAN_TXD) and 30(CAN_RXD). CAN can2(p30, p29); void tCan01 :: send() { static char counter = 0; if (can2.write(CANMessage(0x200, &counter, 1))) { printf("CanTx--> id: 0x200 dlc: 1 data: %x\n\r", counter); counter++; } // toggle led1 after every transmission led1 = !led1; } void tCan01 :: ConfigurerCan2Envoie() { char compteur=1; // 500kbit/s can2.frequency(10000); // activate external can transceiver can_Pca82c250SlopePin = 0; // every 500ms ticker.attach(&send, 0.5); /// create message object for message reception CANMessage can_MsgRx; can2.write(CANMessage(0x200, &compteur, 1)); while (1) { // send received messages to the pc via serial line (9k6, 8n1) if (can2.read(can_MsgRx)) { printf("CanRx--> id: 0x%x dlc: %d data: ", can_MsgRx.id, can_MsgRx.len); for (char i=0; i<can_MsgRx.len; i++) { printf("%x ", can_MsgRx.data[i]); } printf("\n\r"); // any incoming message: toggle led2 led2 = !led2; } } } /*void tcan01 ::Can1Recoit() { static char msg=0; if (can1.read(CANMessage(0x200,msg))) { printf("CanTx } }*/