Forked repository to push EVAL-AD593x updates
Dependencies: platform_drivers
main.cpp@0:86671e9c8db0, 2019-09-03 (annotated)
- Committer:
- malavikasaji
- Date:
- Tue Sep 03 17:00:18 2019 +0000
- Revision:
- 0:86671e9c8db0
- Child:
- 1:bd8aea0d51e0
Repository Created.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
malavikasaji | 0:86671e9c8db0 | 1 | /* Copyright (c) 2019 Analog Devices, Inc. All rights reserved. |
malavikasaji | 0:86671e9c8db0 | 2 | |
malavikasaji | 0:86671e9c8db0 | 3 | Redistribution and use in source and binary forms, with or without modification, |
malavikasaji | 0:86671e9c8db0 | 4 | are permitted provided that the following conditions are met: |
malavikasaji | 0:86671e9c8db0 | 5 | - Redistributions of source code must retain the above copyright notice, |
malavikasaji | 0:86671e9c8db0 | 6 | this list of conditions and the following disclaimer. |
malavikasaji | 0:86671e9c8db0 | 7 | - Redistributions in binary form must reproduce the above copyright notice, |
malavikasaji | 0:86671e9c8db0 | 8 | this list of conditions and the following disclaimer in the documentation |
malavikasaji | 0:86671e9c8db0 | 9 | and/or other materials provided with the distribution. |
malavikasaji | 0:86671e9c8db0 | 10 | - Modified versions of the software must be conspicuously marked as such. |
malavikasaji | 0:86671e9c8db0 | 11 | - This software is licensed solely and exclusively for use with processors/products |
malavikasaji | 0:86671e9c8db0 | 12 | manufactured by or for Analog Devices, Inc. |
malavikasaji | 0:86671e9c8db0 | 13 | - This software may not be combined or merged with other code in any manner |
malavikasaji | 0:86671e9c8db0 | 14 | that would cause the software to become subject to terms and conditions which |
malavikasaji | 0:86671e9c8db0 | 15 | differ from those listed here. |
malavikasaji | 0:86671e9c8db0 | 16 | - Neither the name of Analog Devices, Inc. nor the names of its contributors |
malavikasaji | 0:86671e9c8db0 | 17 | may be used to endorse or promote products derived from this software without |
malavikasaji | 0:86671e9c8db0 | 18 | specific prior written permission. |
malavikasaji | 0:86671e9c8db0 | 19 | - The use of this software ma y or may not infringe the patent rights of one or |
malavikasaji | 0:86671e9c8db0 | 20 | more patent holders. This license does not release you from the requirement |
malavikasaji | 0:86671e9c8db0 | 21 | that you obtain separate licenses from these patent holders to use this software. |
malavikasaji | 0:86671e9c8db0 | 22 | |
malavikasaji | 0:86671e9c8db0 | 23 | THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. AND CONTRIBUTORS "AS IS" AND |
malavikasaji | 0:86671e9c8db0 | 24 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT, |
malavikasaji | 0:86671e9c8db0 | 25 | TITLE, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN |
malavikasaji | 0:86671e9c8db0 | 26 | NO EVENT SHALL ANALOG DEVICES, INC. OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, |
malavikasaji | 0:86671e9c8db0 | 27 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, PUNITIVE OR CONSEQUENTIAL DAMAGES |
malavikasaji | 0:86671e9c8db0 | 28 | (INCLUDING, BUT NOT LIMITED TO, DAMAGES ARISING OUT OF CLAIMS OF INTELLECTUAL |
malavikasaji | 0:86671e9c8db0 | 29 | PROPERTY RIGHTS INFRINGEMENT; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS |
malavikasaji | 0:86671e9c8db0 | 30 | OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
malavikasaji | 0:86671e9c8db0 | 31 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
malavikasaji | 0:86671e9c8db0 | 32 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, |
malavikasaji | 0:86671e9c8db0 | 33 | EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
malavikasaji | 0:86671e9c8db0 | 34 | |
malavikasaji | 0:86671e9c8db0 | 35 | 2019-01-10-7CBSD SLA |
malavikasaji | 0:86671e9c8db0 | 36 | |
malavikasaji | 0:86671e9c8db0 | 37 | */ |
malavikasaji | 0:86671e9c8db0 | 38 | |
malavikasaji | 0:86671e9c8db0 | 39 | /***Libraries***/ |
malavikasaji | 0:86671e9c8db0 | 40 | #include <stdio.h> /*Standard Library*/ |
malavikasaji | 0:86671e9c8db0 | 41 | #include "mbed.h" /*mbed header file*/ |
malavikasaji | 0:86671e9c8db0 | 42 | #include "AD593x.h" |
malavikasaji | 0:86671e9c8db0 | 43 | |
malavikasaji | 0:86671e9c8db0 | 44 | /***Defines for UART Protocol***/ |
malavikasaji | 0:86671e9c8db0 | 45 | #define BAUD_RATE 115200 /*Baud Rate*/ |
malavikasaji | 0:86671e9c8db0 | 46 | |
malavikasaji | 0:86671e9c8db0 | 47 | /*Configure and instantiate UART protocol |
malavikasaji | 0:86671e9c8db0 | 48 | and baud rate*/ |
malavikasaji | 0:86671e9c8db0 | 49 | Serial port(USBTX, USBRX, BAUD_RATE); |
malavikasaji | 0:86671e9c8db0 | 50 | |
malavikasaji | 0:86671e9c8db0 | 51 | AD1234 device(D10); |
malavikasaji | 0:86671e9c8db0 | 52 | // If you have a second device on board, define it as a new device. For e.g. AD1234 device2(D9); |
malavikasaji | 0:86671e9c8db0 | 53 | |
malavikasaji | 0:86671e9c8db0 | 54 | /***Function Declarations***/ |
malavikasaji | 0:86671e9c8db0 | 55 | static void setup_devices(void); |
malavikasaji | 0:86671e9c8db0 | 56 | static void print_title(void); |
malavikasaji | 0:86671e9c8db0 | 57 | static void print_prompt(void); |
malavikasaji | 0:86671e9c8db0 | 58 | static void menu_1_function1(void); |
malavikasaji | 0:86671e9c8db0 | 59 | static void menu_2_function2(void); |
malavikasaji | 0:86671e9c8db0 | 60 | static void menu_3_function3(void); |
malavikasaji | 0:86671e9c8db0 | 61 | |
malavikasaji | 0:86671e9c8db0 | 62 | int main() |
malavikasaji | 0:86671e9c8db0 | 63 | { |
malavikasaji | 0:86671e9c8db0 | 64 | uint8_t user_command; /*User input variable*/ |
malavikasaji | 0:86671e9c8db0 | 65 | uint8_t connected = 1; /*Initialize SPI*/ |
malavikasaji | 0:86671e9c8db0 | 66 | |
malavikasaji | 0:86671e9c8db0 | 67 | print_title(); |
malavikasaji | 0:86671e9c8db0 | 68 | |
malavikasaji | 0:86671e9c8db0 | 69 | while(connected == 1) { |
malavikasaji | 0:86671e9c8db0 | 70 | print_prompt(); |
malavikasaji | 0:86671e9c8db0 | 71 | port.scanf("%2d", (int *) &user_command); |
malavikasaji | 0:86671e9c8db0 | 72 | port.printf("%2d\n", user_command); |
malavikasaji | 0:86671e9c8db0 | 73 | switch (user_command) { |
malavikasaji | 0:86671e9c8db0 | 74 | case 1: |
malavikasaji | 0:86671e9c8db0 | 75 | menu_1_function1(); |
malavikasaji | 0:86671e9c8db0 | 76 | break; |
malavikasaji | 0:86671e9c8db0 | 77 | |
malavikasaji | 0:86671e9c8db0 | 78 | case 2: |
malavikasaji | 0:86671e9c8db0 | 79 | menu_2_function2(); |
malavikasaji | 0:86671e9c8db0 | 80 | break; |
malavikasaji | 0:86671e9c8db0 | 81 | |
malavikasaji | 0:86671e9c8db0 | 82 | case 3: |
malavikasaji | 0:86671e9c8db0 | 83 | menu_3_function3(); |
malavikasaji | 0:86671e9c8db0 | 84 | break; |
malavikasaji | 0:86671e9c8db0 | 85 | |
malavikasaji | 0:86671e9c8db0 | 86 | default: |
malavikasaji | 0:86671e9c8db0 | 87 | port.printf(" ***Invalid Entry****\n\n"); |
malavikasaji | 0:86671e9c8db0 | 88 | break; |
malavikasaji | 0:86671e9c8db0 | 89 | |
malavikasaji | 0:86671e9c8db0 | 90 | } |
malavikasaji | 0:86671e9c8db0 | 91 | } |
malavikasaji | 0:86671e9c8db0 | 92 | return 0; |
malavikasaji | 0:86671e9c8db0 | 93 | } |
malavikasaji | 0:86671e9c8db0 | 94 | |
malavikasaji | 0:86671e9c8db0 | 95 | /***Function Definitions***/ |
malavikasaji | 0:86671e9c8db0 | 96 | |
malavikasaji | 0:86671e9c8db0 | 97 | |
malavikasaji | 0:86671e9c8db0 | 98 | static void setup_devices(void) |
malavikasaji | 0:86671e9c8db0 | 99 | { |
malavikasaji | 0:86671e9c8db0 | 100 | device.frequency(1000000); |
malavikasaji | 0:86671e9c8db0 | 101 | //device2.frequency(2000000); |
malavikasaji | 0:86671e9c8db0 | 102 | } |
malavikasaji | 0:86671e9c8db0 | 103 | |
malavikasaji | 0:86671e9c8db0 | 104 | |
malavikasaji | 0:86671e9c8db0 | 105 | /*Function to print the title block when program first starts |
malavikasaji | 0:86671e9c8db0 | 106 | Parameters: None |
malavikasaji | 0:86671e9c8db0 | 107 | Return Value: None*/ |
malavikasaji | 0:86671e9c8db0 | 108 | void print_title() |
malavikasaji | 0:86671e9c8db0 | 109 | { |
malavikasaji | 0:86671e9c8db0 | 110 | port.printf("\n*****************************************************************\n"); |
malavikasaji | 0:86671e9c8db0 | 111 | port.printf("* EVAL-AD1234 Demonstration Program *\n"); |
malavikasaji | 0:86671e9c8db0 | 112 | port.printf("* *\n"); |
malavikasaji | 0:86671e9c8db0 | 113 | port.printf("* This program demonstrates how to measure strain gauge or *\n"); |
malavikasaji | 0:86671e9c8db0 | 114 | port.printf("* other form of a Wheatstone bridge sensors with the AD1234 *\n"); |
malavikasaji | 0:86671e9c8db0 | 115 | port.printf("* *\n"); |
malavikasaji | 0:86671e9c8db0 | 116 | port.printf("* *\n"); |
malavikasaji | 0:86671e9c8db0 | 117 | port.printf("* Set the baud rate to 115200 and select the newline terminator.*\n"); |
malavikasaji | 0:86671e9c8db0 | 118 | port.printf("* *\n"); |
malavikasaji | 0:86671e9c8db0 | 119 | port.printf("*****************************************************************\n"); |
malavikasaji | 0:86671e9c8db0 | 120 | } |
malavikasaji | 0:86671e9c8db0 | 121 | |
malavikasaji | 0:86671e9c8db0 | 122 | /*Function to print command summary |
malavikasaji | 0:86671e9c8db0 | 123 | Parameters: None |
malavikasaji | 0:86671e9c8db0 | 124 | Return Value: None */ |
malavikasaji | 0:86671e9c8db0 | 125 | void print_prompt() { |
malavikasaji | 0:86671e9c8db0 | 126 | port.printf("\nCommand Summary\n"); |
malavikasaji | 0:86671e9c8db0 | 127 | port.printf(" 1 - CS high\n"); |
malavikasaji | 0:86671e9c8db0 | 128 | port.printf(" 2 - CS low\n"); |
malavikasaji | 0:86671e9c8db0 | 129 | port.printf(" 3 - Spi transaction\n"); |
malavikasaji | 0:86671e9c8db0 | 130 | port.printf(" x - Put More Menu Items Here\n"); |
malavikasaji | 0:86671e9c8db0 | 131 | port.printf("Select an option: "); |
malavikasaji | 0:86671e9c8db0 | 132 | } |
malavikasaji | 0:86671e9c8db0 | 133 | |
malavikasaji | 0:86671e9c8db0 | 134 | |
malavikasaji | 0:86671e9c8db0 | 135 | /*Function to |
malavikasaji | 0:86671e9c8db0 | 136 | Parameters: None |
malavikasaji | 0:86671e9c8db0 | 137 | Return Value: None */ |
malavikasaji | 0:86671e9c8db0 | 138 | void menu_1_function1() |
malavikasaji | 0:86671e9c8db0 | 139 | { |
malavikasaji | 0:86671e9c8db0 | 140 | device.AD1234_function1(); |
malavikasaji | 0:86671e9c8db0 | 141 | port.printf("In function 1\n"); |
malavikasaji | 0:86671e9c8db0 | 142 | } |
malavikasaji | 0:86671e9c8db0 | 143 | |
malavikasaji | 0:86671e9c8db0 | 144 | |
malavikasaji | 0:86671e9c8db0 | 145 | /*Function to |
malavikasaji | 0:86671e9c8db0 | 146 | Parameters: None |
malavikasaji | 0:86671e9c8db0 | 147 | Return Value: None */ |
malavikasaji | 0:86671e9c8db0 | 148 | void menu_2_function2() |
malavikasaji | 0:86671e9c8db0 | 149 | { |
malavikasaji | 0:86671e9c8db0 | 150 | device.AD1234_function2(); |
malavikasaji | 0:86671e9c8db0 | 151 | port.printf("In function 2\n"); |
malavikasaji | 0:86671e9c8db0 | 152 | } |
malavikasaji | 0:86671e9c8db0 | 153 | |
malavikasaji | 0:86671e9c8db0 | 154 | void menu_3_function3() |
malavikasaji | 0:86671e9c8db0 | 155 | { |
malavikasaji | 0:86671e9c8db0 | 156 | device.write_16b_spi(0x5050); |
malavikasaji | 0:86671e9c8db0 | 157 | port.printf("In function 3\n"); |
malavikasaji | 0:86671e9c8db0 | 158 | } |