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) || defined(TARGET_LPC4088_DM) 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 int main() { 00061 printf("main()\n"); 00062 ticker.attach(&send, 1); 00063 CANMessage msg; 00064 while(1) { 00065 #if (!defined (TARGET_LPC1549) && !defined(TARGET_B96B_F446VE) && \ 00066 !defined(TARGET_NUCLEO_F091RC) && !defined(TARGET_NUCLEO_F072RB) && \ 00067 !defined(TARGET_NUCLEO_F042K6) && !defined(TARGET_NUCLEO_F334R8) && \ 00068 !defined(TARGET_NUCLEO_F303RE) && !defined(TARGET_NUCLEO_F303K8) && \ 00069 !defined(TARGET_NUCLEO_F302R8) && !defined(TARGET_NUCLEO_F103RB) && \ 00070 !defined(TARGET_DISCO_L476VG) && !defined(TARGET_NUCLEO_L476RG) && \ 00071 !defined(TARGET_NUCLEO_L432KC)) 00072 printf("loop()\n"); 00073 if(can2.read(msg)) { 00074 printmsg("Rx message:", &msg); 00075 led2 = !led2; 00076 } 00077 #endif 00078 wait(0.2); 00079 } 00080 }
Generated on Tue Jul 12 2022 12:28:40 by
1.7.2
