Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:cdcbb66ba497, 2017-09-07 (annotated)
- Committer:
- j3
- Date:
- Thu Sep 07 22:57:39 2017 +0000
- Revision:
- 0:cdcbb66ba497
- Child:
- 1:0951a80a60e2
init commit
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| j3 | 0:cdcbb66ba497 | 1 | /******************************************************************************* |
| j3 | 0:cdcbb66ba497 | 2 | * Copyright (C) 2017 Maxim Integrated Products, Inc., All Rights Reserved. |
| j3 | 0:cdcbb66ba497 | 3 | * |
| j3 | 0:cdcbb66ba497 | 4 | * Permission is hereby granted, free of charge, to any person obtaining a |
| j3 | 0:cdcbb66ba497 | 5 | * copy of this software and associated documentation files (the "Software"), |
| j3 | 0:cdcbb66ba497 | 6 | * to deal in the Software without restriction, including without limitation |
| j3 | 0:cdcbb66ba497 | 7 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, |
| j3 | 0:cdcbb66ba497 | 8 | * and/or sell copies of the Software, and to permit persons to whom the |
| j3 | 0:cdcbb66ba497 | 9 | * Software is furnished to do so, subject to the following conditions: |
| j3 | 0:cdcbb66ba497 | 10 | * |
| j3 | 0:cdcbb66ba497 | 11 | * The above copyright notice and this permission notice shall be included |
| j3 | 0:cdcbb66ba497 | 12 | * in all copies or substantial portions of the Software. |
| j3 | 0:cdcbb66ba497 | 13 | * |
| j3 | 0:cdcbb66ba497 | 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
| j3 | 0:cdcbb66ba497 | 15 | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
| j3 | 0:cdcbb66ba497 | 16 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
| j3 | 0:cdcbb66ba497 | 17 | * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES |
| j3 | 0:cdcbb66ba497 | 18 | * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, |
| j3 | 0:cdcbb66ba497 | 19 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
| j3 | 0:cdcbb66ba497 | 20 | * OTHER DEALINGS IN THE SOFTWARE. |
| j3 | 0:cdcbb66ba497 | 21 | * |
| j3 | 0:cdcbb66ba497 | 22 | * Except as contained in this notice, the name of Maxim Integrated |
| j3 | 0:cdcbb66ba497 | 23 | * Products, Inc. shall not be used except as stated in the Maxim Integrated |
| j3 | 0:cdcbb66ba497 | 24 | * Products, Inc. Branding Policy. |
| j3 | 0:cdcbb66ba497 | 25 | * |
| j3 | 0:cdcbb66ba497 | 26 | * The mere transfer of this software does not imply any licenses |
| j3 | 0:cdcbb66ba497 | 27 | * of trade secrets, proprietary technology, copyrights, patents, |
| j3 | 0:cdcbb66ba497 | 28 | * trademarks, maskwork rights, or any other form of intellectual |
| j3 | 0:cdcbb66ba497 | 29 | * property whatsoever. Maxim Integrated Products, Inc. retains all |
| j3 | 0:cdcbb66ba497 | 30 | * ownership rights. |
| j3 | 0:cdcbb66ba497 | 31 | ******************************************************************************* |
| j3 | 0:cdcbb66ba497 | 32 | */ |
| j3 | 0:cdcbb66ba497 | 33 | |
| j3 | 0:cdcbb66ba497 | 34 | |
| j3 | 0:cdcbb66ba497 | 35 | //https://developer.mbed.org/users/borislav/notebook/serial-port-plotter/ |
| j3 | 0:cdcbb66ba497 | 36 | |
| j3 | 0:cdcbb66ba497 | 37 | #include "mbed.h" |
| j3 | 0:cdcbb66ba497 | 38 | |
| j3 | 0:cdcbb66ba497 | 39 | |
| j3 | 0:cdcbb66ba497 | 40 | int32_t float_to_int(float f); |
| j3 | 0:cdcbb66ba497 | 41 | |
| j3 | 0:cdcbb66ba497 | 42 | |
| j3 | 0:cdcbb66ba497 | 43 | int main() |
| j3 | 0:cdcbb66ba497 | 44 | { |
| j3 | 0:cdcbb66ba497 | 45 | DigitalOut rLed(LED_RED, 1); |
| j3 | 0:cdcbb66ba497 | 46 | DigitalOut gLed(LED_GREEN, 1); |
| j3 | 0:cdcbb66ba497 | 47 | DigitalOut bLed(LED_BLUE, 1); |
| j3 | 0:cdcbb66ba497 | 48 | |
| j3 | 0:cdcbb66ba497 | 49 | DigitalOut leds[] = {rLed, gLed, bLed}; |
| j3 | 0:cdcbb66ba497 | 50 | |
| j3 | 0:cdcbb66ba497 | 51 | Serial debug(USBTX, USBRX); |
| j3 | 0:cdcbb66ba497 | 52 | debug.baud(115200); |
| j3 | 0:cdcbb66ba497 | 53 | |
| j3 | 0:cdcbb66ba497 | 54 | //const float PI = 3.14159265F; |
| j3 | 0:cdcbb66ba497 | 55 | float angle[] = {0.0F, 120.0F, 240.0F}; |
| j3 | 0:cdcbb66ba497 | 56 | float sinScaled; |
| j3 | 0:cdcbb66ba497 | 57 | int32_t data[3]; |
| j3 | 0:cdcbb66ba497 | 58 | uint32_t cnt = 0; |
| j3 | 0:cdcbb66ba497 | 59 | |
| j3 | 0:cdcbb66ba497 | 60 | while(1) |
| j3 | 0:cdcbb66ba497 | 61 | { |
| j3 | 0:cdcbb66ba497 | 62 | //get data |
| j3 | 0:cdcbb66ba497 | 63 | for(uint32_t idx = 0; idx < 3; idx++) |
| j3 | 0:cdcbb66ba497 | 64 | { |
| j3 | 0:cdcbb66ba497 | 65 | //get sin, scaled up and offset above 0 |
| j3 | 0:cdcbb66ba497 | 66 | sinScaled = (100 + (100.0F * sin(angle[idx]*(PI/180.0F)))); |
| j3 | 0:cdcbb66ba497 | 67 | data[idx] = float_to_int(sinScaled); |
| j3 | 0:cdcbb66ba497 | 68 | |
| j3 | 0:cdcbb66ba497 | 69 | //inc angle, check for roll over |
| j3 | 0:cdcbb66ba497 | 70 | angle[idx] += 1.0F; |
| j3 | 0:cdcbb66ba497 | 71 | if(angle[idx] > 360.0F) |
| j3 | 0:cdcbb66ba497 | 72 | { |
| j3 | 0:cdcbb66ba497 | 73 | angle[idx] = 0.0F; |
| j3 | 0:cdcbb66ba497 | 74 | } |
| j3 | 0:cdcbb66ba497 | 75 | } |
| j3 | 0:cdcbb66ba497 | 76 | |
| j3 | 0:cdcbb66ba497 | 77 | //plot |
| j3 | 0:cdcbb66ba497 | 78 | debug.printf("$%d %d %d;", data[0], data[1], data[2]); |
| j3 | 0:cdcbb66ba497 | 79 | |
| j3 | 0:cdcbb66ba497 | 80 | //blink some lights, just cause you have to |
| j3 | 0:cdcbb66ba497 | 81 | leds[cnt % 3] = !leds[cnt % 3]; |
| j3 | 0:cdcbb66ba497 | 82 | cnt++; |
| j3 | 0:cdcbb66ba497 | 83 | |
| j3 | 0:cdcbb66ba497 | 84 | //wait a bit |
| j3 | 0:cdcbb66ba497 | 85 | wait(0.01F); |
| j3 | 0:cdcbb66ba497 | 86 | } |
| j3 | 0:cdcbb66ba497 | 87 | } |
| j3 | 0:cdcbb66ba497 | 88 | |
| j3 | 0:cdcbb66ba497 | 89 | |
| j3 | 0:cdcbb66ba497 | 90 | int32_t float_to_int(float f) |
| j3 | 0:cdcbb66ba497 | 91 | { |
| j3 | 0:cdcbb66ba497 | 92 | int32_t i; |
| j3 | 0:cdcbb66ba497 | 93 | |
| j3 | 0:cdcbb66ba497 | 94 | if (f >= 0.0F) |
| j3 | 0:cdcbb66ba497 | 95 | { |
| j3 | 0:cdcbb66ba497 | 96 | i = static_cast<int32_t>(f + 0.5F); |
| j3 | 0:cdcbb66ba497 | 97 | } |
| j3 | 0:cdcbb66ba497 | 98 | else |
| j3 | 0:cdcbb66ba497 | 99 | { |
| j3 | 0:cdcbb66ba497 | 100 | i = static_cast<int32_t>(f - 0.5F); |
| j3 | 0:cdcbb66ba497 | 101 | } |
| j3 | 0:cdcbb66ba497 | 102 | |
| j3 | 0:cdcbb66ba497 | 103 | return i; |
| j3 | 0:cdcbb66ba497 | 104 | } |