nkjnm
Dependencies: MAX44000 nexpaq_mdk
Fork of LED_Demo by
main.cpp
00001 #include "test_env.h" 00002 00003 #if !DEVICE_INTERRUPTIN 00004 #error [NOT_SUPPORTED] InterruptIn is not supported 00005 #endif 00006 00007 DigitalOut myled(LED1); 00008 DigitalOut led2(LED2); 00009 00010 volatile int checks = 0; 00011 void in_handler() { 00012 checks++; 00013 led2 = !led2; 00014 } 00015 00016 #if defined(TARGET_KL25Z) 00017 #define PIN_OUT PTC6 00018 #define PIN_IN PTA5 00019 00020 #elif defined(TARGET_KL05Z) 00021 #define PIN_OUT PTB11 00022 #define PIN_IN PTB1 00023 00024 #elif defined(TARGET_LPC812) 00025 #define PIN_OUT D10 00026 #define PIN_IN D11 00027 00028 #elif defined(TARGET_LPC1114) 00029 #define PIN_OUT dp1 00030 #define PIN_IN dp2 00031 00032 #elif defined(TARGET_LPC1549) 00033 // TARGET_FF_ARDUINO cannot be used, because D0 is used as USBRX (USB serial 00034 // port pin), D1 is used as USBTX 00035 #define PIN_OUT D2 00036 #define PIN_IN D7 00037 00038 #elif defined(TARGET_LPC4088) 00039 #define PIN_IN (p11) 00040 #define PIN_OUT (p12) 00041 00042 #elif defined(TARGET_NUCLEO_F030R8) || \ 00043 defined(TARGET_NUCLEO_F070RB) || \ 00044 defined(TARGET_NUCLEO_F072RB) || \ 00045 defined(TARGET_NUCLEO_F091RC) || \ 00046 defined(TARGET_NUCLEO_F103RB) || \ 00047 defined(TARGET_NUCLEO_F302R8) || \ 00048 defined(TARGET_NUCLEO_F303RE) || \ 00049 defined(TARGET_NUCLEO_F334R8) || \ 00050 defined(TARGET_NUCLEO_F401RE) || \ 00051 defined(TARGET_NUCLEO_F410RB) || \ 00052 defined(TARGET_NUCLEO_F411RE) || \ 00053 defined(TARGET_NUCLEO_F429ZI) || \ 00054 defined(TARGET_NUCLEO_F446RE) || \ 00055 defined(TARGET_NUCLEO_F446ZE) || \ 00056 defined(TARGET_NUCLEO_L053R8) || \ 00057 defined(TARGET_NUCLEO_L073RZ) || \ 00058 defined(TARGET_NUCLEO_L152RE) 00059 #define PIN_IN PB_8 00060 #define PIN_OUT PC_7 00061 00062 #elif defined(TARGET_NUCLEO_F031K6) || \ 00063 defined(TARGET_NUCLEO_F042K6) || \ 00064 defined(TARGET_NUCLEO_L011K4) || \ 00065 defined(TARGET_NUCLEO_L031K6) 00066 #define PIN_IN A4 00067 #define PIN_OUT A5 00068 00069 #elif defined(TARGET_ARCH_MAX) || \ 00070 defined(TARGET_DISCO_F407VG) || \ 00071 defined(TARGET_DISCO_F429ZI)|| \ 00072 defined(TARGET_DISCO_F401VC) 00073 #define PIN_OUT PC_12 00074 #define PIN_IN PD_0 00075 00076 #elif defined(TARGET_RZ_A1H) 00077 #define PIN_OUT D1 00078 #define PIN_IN D5 00079 00080 #elif defined(TARGET_VK_RZ_A1H) 00081 #define PIN_OUT P3_2 00082 #define PIN_IN P5_6 00083 00084 #elif defined(TARGET_FF_ARDUINO) 00085 #define PIN_OUT D0 00086 #define PIN_IN D7 00087 00088 #elif defined(TARGET_MAXWSNENV) 00089 #define PIN_OUT P0_0 00090 #define PIN_IN P0_1 00091 00092 #elif defined(TARGET_MAX32600MBED) 00093 #define PIN_OUT P1_0 00094 #define PIN_IN P4_7 00095 00096 #elif defined(TARGET_EFM32LG_STK3600) || defined(TARGET_EFM32GG_STK3700) || defined(TARGET_EFM32WG_STK3800) 00097 #define PIN_OUT PD0 00098 #define PIN_IN PC3 00099 00100 #elif defined(TARGET_EFM32ZG_STK3200) 00101 #define PIN_OUT PD7 00102 #define PIN_IN PC1 00103 00104 #elif defined(TARGET_EFM32HG_STK3400) 00105 #define PIN_OUT PE10 00106 #define PIN_IN PC1 00107 00108 #elif defined(TARGET_EFM32PG_STK3401) 00109 #define PIN_OUT PC6 00110 #define PIN_IN PA3 00111 00112 #elif defined(TARGET_SAMR21G18A) || defined(TARGET_SAMD21J18A) || defined(TARGET_SAMD21G18A) 00113 #define PIN_OUT PB02 00114 #define PIN_IN PB03 00115 00116 #elif defined(TARGET_SAML21J18A) 00117 #define PIN_OUT PA02 00118 #define PIN_IN PA03 00119 00120 #elif defined(TARGET_SAMG55J19) 00121 #define PIN_OUT PA13 00122 #define PIN_IN PB13 00123 00124 #else 00125 #define PIN_IN (p5) 00126 #define PIN_OUT (p25) 00127 00128 #endif 00129 00130 DigitalOut out(PIN_OUT); 00131 InterruptIn in(PIN_IN); 00132 00133 #define IN_OUT_SET out = 1; myled = 1; 00134 #define IN_OUT_CLEAR out = 0; myled = 0; 00135 00136 void flipper() { 00137 for (int i = 0; i < 5; i++) { 00138 IN_OUT_SET; 00139 wait(0.2); 00140 IN_OUT_CLEAR; 00141 wait(0.2); 00142 } 00143 } 00144 00145 int main() { 00146 MBED_HOSTTEST_TIMEOUT(15); 00147 MBED_HOSTTEST_SELECT(default_auto); 00148 MBED_HOSTTEST_DESCRIPTION(InterruptIn); 00149 MBED_HOSTTEST_START("MBED_A7"); 00150 00151 IN_OUT_CLEAR; 00152 //Test falling edges first 00153 in.rise(NULL); 00154 in.fall(in_handler); 00155 flipper(); 00156 00157 if(checks != 5) { 00158 printf("MBED: falling edges test failed: %d\r\n",checks); 00159 MBED_HOSTTEST_RESULT(false); 00160 } 00161 00162 //Now test rising edges 00163 in.rise(in_handler); 00164 in.fall(NULL); 00165 flipper(); 00166 00167 if (checks != 10) { 00168 printf("MBED: raising edges test failed: %d\r\n", checks); 00169 MBED_HOSTTEST_RESULT(false); 00170 } 00171 00172 //Now test switch off edge detection 00173 in.rise(NULL); 00174 in.fall(NULL); 00175 flipper(); 00176 00177 if (checks != 10) { 00178 printf("MBED: edge detection switch off test failed: %d\r\n", checks); 00179 MBED_HOSTTEST_RESULT(false); 00180 } 00181 00182 //Finally test both 00183 in.rise(in_handler); 00184 in.fall(in_handler); 00185 flipper(); 00186 00187 if (checks != 20) { 00188 printf("MBED: Simultaneous rising and falling edges failed: %d\r\n", checks); 00189 MBED_HOSTTEST_RESULT(false); 00190 } 00191 00192 MBED_HOSTTEST_RESULT(true); 00193 }
Generated on Tue Jul 12 2022 17:03:47 by
1.7.2
