Simple test application for X-NUCLEO-IKA01A1 expansion board.
Dependencies: X_NUCLEO_IKA01A1 mbed
Fork of HelloWorld_IKA01A1 by
Simple test application for X-NUCLEO-IKA01A1 expansion board.
Platform compatibility issues
- NUCLEO-F302R8: use pin D5 for LED Driver configuration
- LPCXpresso11U68: use pin D3 as PWM for LED Driver configuration. Use a free Dx pin as Signal2 for Windows Comparator configuration.
main.cpp@20:7f25e4cedd1a, 2017-07-13 (annotated)
- Committer:
- Davidroid
- Date:
- Thu Jul 13 15:46:19 2017 +0000
- Revision:
- 20:7f25e4cedd1a
- Parent:
- 19:a8d8f1ef04f6
- Child:
- 21:3b3d7bfcf94b
Adapting to ARM mbed coding style.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Davidroid | 19:a8d8f1ef04f6 | 1 | /** |
Davidroid | 19:a8d8f1ef04f6 | 2 | ****************************************************************************** |
Davidroid | 19:a8d8f1ef04f6 | 3 | * @file main.cpp |
Davidroid | 19:a8d8f1ef04f6 | 4 | * @author CLab |
Davidroid | 19:a8d8f1ef04f6 | 5 | * @version V1.0.0 |
Davidroid | 19:a8d8f1ef04f6 | 6 | * @date 2-December-2016 |
Davidroid | 19:a8d8f1ef04f6 | 7 | * @brief Simple Example application for using the X_NUCLEO_IKA01A1 |
Davidroid | 19:a8d8f1ef04f6 | 8 | * Analog expansion board. |
Davidroid | 19:a8d8f1ef04f6 | 9 | ****************************************************************************** |
Davidroid | 19:a8d8f1ef04f6 | 10 | * @attention |
Davidroid | 19:a8d8f1ef04f6 | 11 | * |
Davidroid | 19:a8d8f1ef04f6 | 12 | * <h2><center>© COPYRIGHT(c) 2016 STMicroelectronics</center></h2> |
Davidroid | 19:a8d8f1ef04f6 | 13 | * |
Davidroid | 19:a8d8f1ef04f6 | 14 | * Redistribution and use in source and binary forms, with or without modification, |
Davidroid | 19:a8d8f1ef04f6 | 15 | * are permitted provided that the following conditions are met: |
Davidroid | 19:a8d8f1ef04f6 | 16 | * 1. Redistributions of source code must retain the above copyright notice, |
Davidroid | 19:a8d8f1ef04f6 | 17 | * this list of conditions and the following disclaimer. |
Davidroid | 19:a8d8f1ef04f6 | 18 | * 2. Redistributions in binary form must reproduce the above copyright notice, |
Davidroid | 19:a8d8f1ef04f6 | 19 | * this list of conditions and the following disclaimer in the documentation |
Davidroid | 19:a8d8f1ef04f6 | 20 | * and/or other materials provided with the distribution. |
Davidroid | 19:a8d8f1ef04f6 | 21 | * 3. Neither the name of STMicroelectronics nor the names of its contributors |
Davidroid | 19:a8d8f1ef04f6 | 22 | * may be used to endorse or promote products derived from this software |
Davidroid | 19:a8d8f1ef04f6 | 23 | * without specific prior written permission. |
Davidroid | 19:a8d8f1ef04f6 | 24 | * |
Davidroid | 19:a8d8f1ef04f6 | 25 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
Davidroid | 19:a8d8f1ef04f6 | 26 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
Davidroid | 19:a8d8f1ef04f6 | 27 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
Davidroid | 19:a8d8f1ef04f6 | 28 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE |
Davidroid | 19:a8d8f1ef04f6 | 29 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
Davidroid | 19:a8d8f1ef04f6 | 30 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
Davidroid | 19:a8d8f1ef04f6 | 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
Davidroid | 19:a8d8f1ef04f6 | 32 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
Davidroid | 19:a8d8f1ef04f6 | 33 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
Davidroid | 19:a8d8f1ef04f6 | 34 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
Davidroid | 19:a8d8f1ef04f6 | 35 | * |
Davidroid | 19:a8d8f1ef04f6 | 36 | ****************************************************************************** |
Davidroid | 19:a8d8f1ef04f6 | 37 | */ |
Davidroid | 19:a8d8f1ef04f6 | 38 | |
Davidroid | 19:a8d8f1ef04f6 | 39 | |
Davidroid | 19:a8d8f1ef04f6 | 40 | /* Includes ------------------------------------------------------------------*/ |
Davidroid | 19:a8d8f1ef04f6 | 41 | |
Davidroid | 19:a8d8f1ef04f6 | 42 | /* mbed specific header files. */ |
hemddabral | 0:0f16e14940d0 | 43 | #include "mbed.h" |
Davidroid | 19:a8d8f1ef04f6 | 44 | |
Davidroid | 19:a8d8f1ef04f6 | 45 | /* Board specific header files. */ |
Davidroid | 19:a8d8f1ef04f6 | 46 | #include "XNucleoIKA01A1.h" |
Davidroid | 19:a8d8f1ef04f6 | 47 | |
Davidroid | 19:a8d8f1ef04f6 | 48 | |
Davidroid | 19:a8d8f1ef04f6 | 49 | /* Variables -----------------------------------------------------------------*/ |
hemddabral | 0:0f16e14940d0 | 50 | |
hemddabral | 3:5c45cb513aaf | 51 | Serial pc(USBTX, USBRX); |
Davidroid | 19:a8d8f1ef04f6 | 52 | //Serial pc(SERIAL_TX, SERIAL_RX); |
Davidroid | 19:a8d8f1ef04f6 | 53 | DigitalOut myled(LED1); |
hemddabral | 0:0f16e14940d0 | 54 | |
hemddabral | 14:182526e41810 | 55 | |
Davidroid | 19:a8d8f1ef04f6 | 56 | /* Functions -----------------------------------------------------------------*/ |
hemddabral | 0:0f16e14940d0 | 57 | |
hemddabral | 4:6ed99ea3bf33 | 58 | int main() { |
Davidroid | 19:a8d8f1ef04f6 | 59 | XNucleoIKA01A1 *analog_expansion_board = XNucleoIKA01A1::instance(X_NUCLEO_IKA01A1_PIN_INSTRUMENTATION_AMP, |
Davidroid | 19:a8d8f1ef04f6 | 60 | X_NUCLEO_IKA01A1_PIN_CURRENT_SENSING, |
Davidroid | 19:a8d8f1ef04f6 | 61 | X_NUCLEO_IKA01A1_PIN_PHOTO_SENSOR, |
Davidroid | 19:a8d8f1ef04f6 | 62 | X_NUCLEO_IKA01A1_PIN_WINDOWS_COMP_SIGNAL_1, |
Davidroid | 19:a8d8f1ef04f6 | 63 | X_NUCLEO_IKA01A1_PIN_WINDOWS_COMP_SIGNAL_2, |
Davidroid | 19:a8d8f1ef04f6 | 64 | X_NUCLEO_IKA01A1_PIN_PWM_LED_DRIVER_OUTPUT, |
Davidroid | 19:a8d8f1ef04f6 | 65 | 5000); |
Davidroid | 19:a8d8f1ef04f6 | 66 | analog_expansion_board->init(); |
Davidroid | 19:a8d8f1ef04f6 | 67 | TSZ124 *instr_amp = analog_expansion_board->tsz124; |
Davidroid | 19:a8d8f1ef04f6 | 68 | TSU104 *photo_sensor_wind_comp = analog_expansion_board->tsu104; |
Davidroid | 19:a8d8f1ef04f6 | 69 | TSV734 *led_driver = analog_expansion_board->tsv734; |
Davidroid | 19:a8d8f1ef04f6 | 70 | double duty_cycle = 0; |
hemddabral | 9:9b48d36016c3 | 71 | |
hemddabral | 4:6ed99ea3bf33 | 72 | while(1) { |
Davidroid | 19:a8d8f1ef04f6 | 73 | pc.printf("\nLooping...\n"); |
Davidroid | 19:a8d8f1ef04f6 | 74 | |
Davidroid | 19:a8d8f1ef04f6 | 75 | unsigned int op_amp_voltage = instr_amp->get_voltage(); |
Davidroid | 19:a8d8f1ef04f6 | 76 | unsigned int op_amp_current = instr_amp->get_current(); |
hemddabral | 7:41935875cb26 | 77 | // pass the analog pin name on which voltage is to be read (e.g. A3 on LPCxpresso lpc11u68) |
Davidroid | 20:7f25e4cedd1a | 78 | unsigned int photo_sensor_voltage = photo_sensor_wind_comp->get_voltage(); |
Davidroid | 20:7f25e4cedd1a | 79 | unsigned int wind_com_pin1 = photo_sensor_wind_comp->get_signal1(); |
Davidroid | 20:7f25e4cedd1a | 80 | unsigned int wind_com_pin2 = photo_sensor_wind_comp->get_signal2(); |
hemddabral | 4:6ed99ea3bf33 | 81 | |
Davidroid | 19:a8d8f1ef04f6 | 82 | pc.printf("\nopAmp measured voltage(mV): %u \n", op_amp_voltage); |
Davidroid | 19:a8d8f1ef04f6 | 83 | pc.printf("\nopAmp measured Current(mA): %u \n", op_amp_current); |
Davidroid | 19:a8d8f1ef04f6 | 84 | pc.printf("\nphotodiode sensor output voltage(mV): %u \n", photo_sensor_voltage); |
Davidroid | 19:a8d8f1ef04f6 | 85 | pc.printf("\nWindows comparator: signal 1 value(pin D2): %u \n", wind_com_pin1); |
Davidroid | 19:a8d8f1ef04f6 | 86 | pc.printf("\nWindows comparator: signal 1 value(pin D4): %u \n", wind_com_pin2); |
hemddabral | 15:edec8fd4f69c | 87 | |
Davidroid | 19:a8d8f1ef04f6 | 88 | duty_cycle += 0.1; |
Davidroid | 20:7f25e4cedd1a | 89 | if (duty_cycle >= 1) { |
Davidroid | 19:a8d8f1ef04f6 | 90 | duty_cycle = 0; |
Davidroid | 20:7f25e4cedd1a | 91 | } |
hemddabral | 13:179d5044bbc1 | 92 | |
Davidroid | 20:7f25e4cedd1a | 93 | pc.printf("\nLED Driver: duty cycle: %.2lf percent \n", led_driver->set_duty_cycle(duty_cycle)); |
hemddabral | 13:179d5044bbc1 | 94 | |
hemddabral | 9:9b48d36016c3 | 95 | myled = !myled; |
hemddabral | 9:9b48d36016c3 | 96 | wait(1); |
hemddabral | 4:6ed99ea3bf33 | 97 | } |
hemddabral | 0:0f16e14940d0 | 98 | } |
Davidroid | 20:7f25e4cedd1a | 99 |