c
main.cpp
- Committer:
- tecnosys
- Date:
- 2010-06-16
- Revision:
- 3:12c2fd911f22
File content as of revision 3:12c2fd911f22:
// Flip an LED every time we see the rising edge interrupt on a pin #include "mbed.h" #include "CAN3.h" #include "mcp2515.h" #include "mcp2515_can.h" DigitalOut led_can(LED1); DigitalOut led_serial(LED2); DigitalOut led_analog(LED3); DigitalOut led_status(LED4); Serial console(USBTX, USBRX); // tx, rx //InterruptIn can3_int(p16); //mcp2515 can3(p5, p6, p7, p11); SPI spi1(p5, p6, p7); CAN3 can3(spi1, p19, p11); CAN3 can4(spi1, p20, p12); //CAN3 can5(spi1, p21, p23); CAN can2(p30, p29); Ticker mbed_can_ticker; Ticker mcp2515_s1_can_ticker; Ticker mcp2515_s2_can_ticker; //Ticker mcp2515_s3_can_ticker; char testbytes[] = { 0xA1, 0xA2, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0xF0 }; void send() { static char counter = 0; if (can2.write(CANMessage(0x200, &counter, 1))) { printf("\n\rCAN2 CanTx--> id: 0x200 dlc: 1 data: %x\n\r", counter); counter++; } // toggle led1 after every transmission led_status = !led_status; } void sendSPICAN3() { CANMessage test(0x300, testbytes, 8); can3.send(&test); } void sendSPICAN4() { CANMessage test(0x400, testbytes, 8); can4.send(&test); } void sendSPICAN5() { CANMessage test(0x500, testbytes, 8); can4.send(&test); } /////// void canmsg1() { led_can=!led_can; if ( ( can4.can_checkReceive() == CAN_MSGAVAIL ) ) { printf("\n\n\rrecieved some shit on can4\n \r"); can4.process_CANMessages(); } } /* void canmsg2() { led_can=!led_can; if ( ( can5.can_checkReceive() == CAN_MSGAVAIL ) ) { printf("\n\n\rrecieved some shit on can5\n \r"); can5.process_CANMessages(); } } */ void canmsg() { led_can=!led_can; printf("\n\n\rrecieved some shit on can3\n \r"); if ( ( can3.can_checkReceive() == CAN_MSGAVAIL ) ) { can3.process_CANMessages(); } canmsg1();//canmsg2(); } int main() { // console.baud(57600); console.printf("\nStarting\n\n"); spi1.frequency(5000000); // anything above 5000000 5MHZ works can2.frequency(125000);//(500000); 50KBPS 1250000 console.printf("\n\r\rCAN3 \n\r"); can3.frequency(CAN_125KBPS); console.printf("\n\r\rCAN4 \n\r"); can4.frequency(CAN_125KBPS); console.printf("\n\r\rCAN3 \n\r"); can3.frequency(CAN_125KBPS); console.printf("\n\r\rCAN4 \n\r"); can4.frequency(CAN_125KBPS); console.printf("\n\r\rCAN5 \n\r"); //can5.frequency(CAN_125KBPS); wait(.1); led_can=0; led_serial=0; led_analog=0; led_status=0; //can3._spi.frequency(5000000); // anything above 5000000 5MHZ works can3.fall(&canmsg); can4.fall(&canmsg1); //can5.fall(&canmsg2); printf("\n\r\n\r\n\r\n\r\n\r"); wait(.1); mbed_can_ticker.attach(&send, 3); mcp2515_s1_can_ticker.attach(&sendSPICAN3, 2); mcp2515_s2_can_ticker.attach(&sendSPICAN4, 3); //mcp2515_s3_can_ticker.attach(&sendSPICAN5, 1); while (1) { wait(1); // canmsg1(); /* //MODE_NORMAL if ( ( can3.can_checkReceive() == CAN_MSGAVAIL ) ) { can3.process_CANMessages(); } //MODE_NORMAL if ( ( can4.can_checkReceive() == CAN_MSGAVAIL ) ) { can4.process_CANMessages(); } */ //can3.dumpExtendedStatus(); } }