WORKS
Dependencies: MAX44000 PWM_Tone_Library nexpaq_mdk
Fork of LED_Demo by
main.cpp
00001 #include "mbed.h" 00002 00003 #if !DEVICE_CAN 00004 #error [NOT_SUPPORTED] CAN not supported 00005 #endif 00006 00007 Ticker ticker; 00008 DigitalOut led1(LED1); 00009 DigitalOut led2(LED2); 00010 00011 #if defined(TARGET_LPC1549) 00012 // LPC1549 support only single CAN channel 00013 CAN can1(D2, D3); 00014 #elif defined(TARGET_B96B_F446VE) 00015 // B96B_F446VE support only single CAN channel 00016 CAN can1(PD_0, PD_1); 00017 #elif defined(TARGET_NUCLEO_F091RC) || defined(TARGET_NUCLEO_F072RB) || \ 00018 defined(TARGET_NUCLEO_F042K6) || defined(TARGET_NUCLEO_F334R8) || \ 00019 defined(TARGET_NUCLEO_F303RE) || defined(TARGET_NUCLEO_F303K8) || \ 00020 defined(TARGET_NUCLEO_F302R8) || defined(TARGET_NUCLEO_F446RE) || \ 00021 defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F103RB) || \ 00022 defined(TARGET_NUCLEO_F746ZG) || defined(TARGET_NUCLEO_L476RG) || \ 00023 defined(TARGET_NUCLEO_L432KC) 00024 CAN can1(PA_11, PA_12); 00025 #elif defined(TARGET_DISCO_F469NI) || defined(TARGET_DISCO_F746NG) 00026 CAN can1(PB_8, PB_9); 00027 #else 00028 CAN can1(p9, p10); 00029 #endif 00030 00031 #if defined(TARGET_LPC4088) 00032 CAN can2(p34, p33); 00033 #elif defined (TARGET_LPC1768) 00034 CAN can2(p30, p29); 00035 #elif defined(TARGET_NUCLEO_F446RE) || defined(TARGET_DISCO_F469NI) || \ 00036 defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F746ZG) || \ 00037 defined(TARGET_DISCO_F746NG) 00038 CAN can2(PB_5, PB_6); 00039 #endif 00040 char counter = 0; 00041 00042 void printmsg(char *title, CANMessage *msg) { 00043 printf("%s [%03X]", title, msg->id); 00044 for(char i = 0; i < msg->len; i++) { 00045 printf(" %02X", msg->data[i]); 00046 } 00047 printf("\n"); 00048 } 00049 00050 void send() { 00051 printf("send()\n"); 00052 CANMessage msg = CANMessage(1337, &counter, 1); 00053 if(can1.write(msg)) { 00054 printmsg("Tx message:", &msg); 00055 counter++; 00056 } 00057 led1 = !led1; 00058 } 00059 00060 #if (!defined (TARGET_LPC1549) && !defined(TARGET_B96B_F446VE) && \ 00061 !defined(TARGET_NUCLEO_F091RC) && !defined(TARGET_NUCLEO_F072RB) && \ 00062 !defined(TARGET_NUCLEO_F042K6) && !defined(TARGET_NUCLEO_F334R8) && \ 00063 !defined(TARGET_NUCLEO_F303RE) && !defined(TARGET_NUCLEO_F303K8) && \ 00064 !defined(TARGET_NUCLEO_F302R8) && !defined(TARGET_NUCLEO_F103RB) && \ 00065 !defined(TARGET_DISCO_L476VG) && !defined(TARGET_NUCLEO_L476RG) && \ 00066 !defined(TARGET_NUCLEO_L432KC)) 00067 void read() { 00068 CANMessage msg; 00069 printf("rx()\n"); 00070 if(can2.read(msg)) { 00071 printmsg("Rx message:", &msg); 00072 led2 = !led2; 00073 } 00074 } 00075 #endif 00076 00077 int main() { 00078 printf("main()\n"); 00079 ticker.attach(&send, 1); 00080 #if (!defined (TARGET_LPC1549) && !defined(TARGET_B96B_F446VE) && \ 00081 !defined(TARGET_NUCLEO_F091RC) && !defined(TARGET_NUCLEO_F072RB) && \ 00082 !defined(TARGET_NUCLEO_F042K6) && !defined(TARGET_NUCLEO_F334R8) && \ 00083 !defined(TARGET_NUCLEO_F303RE) && !defined(TARGET_NUCLEO_F303K8) && \ 00084 !defined(TARGET_NUCLEO_F302R8) && !defined(TARGET_NUCLEO_F103RB) && \ 00085 !defined(TARGET_DISCO_L476VG) && !defined(TARGET_NUCLEO_L476RG) && \ 00086 !defined(TARGET_NUCLEO_L432KC)) 00087 can2.attach(&read); 00088 #endif 00089 while(1) { 00090 printf("loop()\n"); 00091 wait(1); 00092 } 00093 }
Generated on Tue Jul 12 2022 12:28:40 by
1.7.2
