c
main.cpp
- Committer:
- tecnosys
- Date:
- 2010-06-13
- Revision:
- 1:dbc44582f2f8
File content as of revision 1:dbc44582f2f8:
//#define PROTOPLATFORM #define MBEDPLATFORM // 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" #include <Includes/Platform.h> DigitalOut led_can(LED1); DigitalOut led_serial(LED2); DigitalOut led_analog(LED3); DigitalOut led_status(LED4); Serial console(CONSOLETX, CONSOLERX); // tx, rx //Serial console(USBTX, USBRX); // tx, rx SPI spi1(CAN_SPI_MOSI, CAN_SPI_MISO, CAN_SPI_SCK); //SPI spi1(p5,p6,p7); CAN3 can1(spi1, CAN1_CS, CAN1_NT); CAN3 can2(spi1, CAN2_CS, CAN2_NT); CAN3 can3(spi1, CAN3_CS, CAN3_NT); CAN3 can4(spi1, CAN4_CS, CAN4_NT); //CAN3 can1(spi1, p19, p11); //CAN3 can2(spi1, p20, p12); //CAN3 can5(spi1, p21, p23); //CAN can5(p30, p29); //CAN can5(CAN5_L, CAN5_H); Ticker mbed_can_ticker; Ticker mcp2515_s1_can_ticker; Ticker mcp2515_s2_can_ticker; Ticker mcp2515_s3_can_ticker; Ticker mcp2515_s4_can_ticker; char testbytes[] = { 0xA1, 0xA2, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0xF0 }; void showMessage(CAN3 can) { CANMessage msg; while ( can.read(&msg) == CAN_OK ) { console.printf(" \n \r CAN[]: rx -> id 0x%02x dlc %d ",msg.id,msg.len); for (int i=0;i<msg.len;i++) { console.printf("%02x", msg.data[i]); console.printf(" "); led_serial=!led_serial; } } } void send() { static char counter = 0; //can5.write(CANMessage(0x200, &counter, 1)); counter++; } void sendSPICAN1() { CANMessage test(0x100, testbytes, 8); can1.write(&test); } void sendSPICAN2() { CANMessage test(0x200, testbytes, 8); can2.write(&test); } void sendSPICAN3() { CANMessage test(0x300, testbytes, 8); // can5.write(test); } void sendSPICAN4() { CANMessage test(0x400, testbytes, 8); //can4.write(&test); } /////// void getCANMessages() { showMessage(can1); showMessage(can2); //showMessage(can3); //showMessage(can4); } int main() { led_can=1; led_status=1; console.baud(57600); console.printf("\nStarting\n\n"); // freopen("/console", "w", stdout); // spi1.format(8,0); // spi1.frequency(5000000); // anything above 5000000 5MHZ works //spi1.format(16,0); spi1.frequency(10000000); // can5.frequency(125000);//(500000); 50KBPS 1250000 console.printf("\n\r\rCAN1 \n\r"); // can1.frequency(50000); can1.frequency(50000); console.printf("\n\r\rCAN2 \n\r"); // can2.frequency(5000); can1.frequency(125000); console.printf("\n\r\rCAN3 \n\r"); can1.frequency(250000); console.printf("\n\r\rCAN4 \n\r"); can1.frequency(500000); wait(.1); led_can=0; led_serial=0; led_analog=0; led_status=1; //can3._spi.frequency(5000000); // anything above 5000000 5MHZ works can1.fall(&getCANMessages); can2.fall(&getCANMessages); //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(&sendSPICAN1, 2); mcp2515_s2_can_ticker.attach(&sendSPICAN2, 3); mcp2515_s3_can_ticker.attach(&sendSPICAN3, 2); mcp2515_s4_can_ticker.attach(&sendSPICAN4, 5); //mcp2515_s3_can_ticker.attach(&sendSPICAN5, 1); console.printf("here"); while (1) { console.printf("here2"); 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(); } }