Simple integer calculator using FRDM-KL25Z and Adafruit 2.8" TFT with touch \\ "Dentaku" means "Desktop Calculator" in Japanese \\ On 5-Dec-2015, Support for FRDM-K64F, FRDM-K22F, NUCLEO-F411RE added.
Dependencies: SPI_STMPE610 UniGraphic mbed vt100
Yet another simple desktop calculator program, only for integer.
As usual I used FRDM-KL25Z, Adafruit 2.8" TFT with touch and UniGraphic library.
Now works with FRDM-K64F, FRDM-K22F, and NUCLEO-F411RE.
整数計算のみの簡単な電卓プログラムです。
例によって、FRDM-KL25Z, Adafruit 2.8" TFT with touch, そして UniGraphic を使用しています。
FRDM-K64F, FRDM-K22F, NUCLEO-F411RE でも動くようになりました。
main.h@2:ddf8d8fffb4f, 2015-12-05 (annotated)
- Committer:
- Rhyme
- Date:
- Sat Dec 05 10:24:21 2015 +0000
- Revision:
- 2:ddf8d8fffb4f
- Parent:
- 0:659a74b77279
- Child:
- 3:998ba6618f38
Support for FRDM-K64F, FRDM-K22F, NECLEO-F411RE added.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Rhyme | 0:659a74b77279 | 1 | /** mbed oscilloscope my implementation of a oscillo scope |
Rhyme | 0:659a74b77279 | 2 | * Copyright (c) 2014, 2015 Motoo Tanaka @ Design Methodology Lab |
Rhyme | 0:659a74b77279 | 3 | * |
Rhyme | 0:659a74b77279 | 4 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
Rhyme | 0:659a74b77279 | 5 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
Rhyme | 0:659a74b77279 | 6 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
Rhyme | 0:659a74b77279 | 7 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
Rhyme | 0:659a74b77279 | 8 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
Rhyme | 0:659a74b77279 | 9 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
Rhyme | 0:659a74b77279 | 10 | * THE SOFTWARE. |
Rhyme | 0:659a74b77279 | 11 | */ |
Rhyme | 0:659a74b77279 | 12 | #ifndef _MAIN_H_ |
Rhyme | 0:659a74b77279 | 13 | #define _MAIN_H_ inluded |
Rhyme | 0:659a74b77279 | 14 | |
Rhyme | 2:ddf8d8fffb4f | 15 | #if defined (TARGET_KL25Z) |
Rhyme | 2:ddf8d8fffb4f | 16 | #define PIN_SCLK PTD1 |
Rhyme | 2:ddf8d8fffb4f | 17 | #define PIN_MISO PTD3 |
Rhyme | 0:659a74b77279 | 18 | #define PIN_MOSI PTD2 |
Rhyme | 0:659a74b77279 | 19 | #define PIN_CS_TFT PTD0 |
Rhyme | 0:659a74b77279 | 20 | #define PIN_DC_TFT PTD5 |
Rhyme | 2:ddf8d8fffb4f | 21 | #define PIN_CS_TSC PTA13 |
Rhyme | 0:659a74b77279 | 22 | #define PIN_BL_TFT PTC9 |
Rhyme | 0:659a74b77279 | 23 | #define PIN_CS_SD PTA4 |
Rhyme | 2:ddf8d8fffb4f | 24 | #define PIN_TSC_INTR PTC9 /* place holder */ |
Rhyme | 2:ddf8d8fffb4f | 25 | #define PIN_RESET_TFT PTB10 /* place holder */ |
Rhyme | 0:659a74b77279 | 26 | #define PIN_ADC_CH0 PTB0 |
Rhyme | 2:ddf8d8fffb4f | 27 | #define PIN_ADC_CH1 PTB2 |
Rhyme | 0:659a74b77279 | 28 | |
Rhyme | 0:659a74b77279 | 29 | #elif defined (TARGET_KL46Z) |
Rhyme | 2:ddf8d8fffb4f | 30 | #define PIN_SCLK PTD5 |
Rhyme | 0:659a74b77279 | 31 | #define PIN_MISO PTD7 |
Rhyme | 2:ddf8d8fffb4f | 32 | #define PIN_MOSI PTD6 |
Rhyme | 0:659a74b77279 | 33 | #define PIN_CS_TFT PTD4 |
Rhyme | 0:659a74b77279 | 34 | #define PIN_DC_TFT PTD2 |
Rhyme | 2:ddf8d8fffb4f | 35 | #define PIN_CS_TSC PTA13 |
Rhyme | 0:659a74b77279 | 36 | #define PIN_BL_TFT PTC9 |
Rhyme | 0:659a74b77279 | 37 | #define PIN_CS_SD PTA4 |
Rhyme | 2:ddf8d8fffb4f | 38 | #define PIN_TSC_INTR PTC7 /* place holder */ |
Rhyme | 2:ddf8d8fffb4f | 39 | #define PIN_RESET_TFT PTC6 /* place holder */ |
Rhyme | 0:659a74b77279 | 40 | #define PIN_ADC_CH0 PTB0 |
Rhyme | 2:ddf8d8fffb4f | 41 | #define PIN_ADC_CH1 PTB2 |
Rhyme | 0:659a74b77279 | 42 | |
Rhyme | 0:659a74b77279 | 43 | #elif defined (TARGET_K64F) |
Rhyme | 2:ddf8d8fffb4f | 44 | #define PIN_SCLK PTD1 |
Rhyme | 0:659a74b77279 | 45 | #define PIN_MISO PTD3 |
Rhyme | 2:ddf8d8fffb4f | 46 | #define PIN_MOSI PTD2 |
Rhyme | 0:659a74b77279 | 47 | #define PIN_CS_TFT PTD0 |
Rhyme | 0:659a74b77279 | 48 | #define PIN_DC_TFT PTC4 |
Rhyme | 2:ddf8d8fffb4f | 49 | // for board rev E or later |
Rhyme | 2:ddf8d8fffb4f | 50 | #define PIN_CS_TSC PTC12 |
Rhyme | 2:ddf8d8fffb4f | 51 | // for earlier boards use following line |
Rhyme | 2:ddf8d8fffb4f | 52 | // #define PIN_CS_TSC PTA0 |
Rhyme | 0:659a74b77279 | 53 | #define PIN_BL_TFT PTC3 |
Rhyme | 0:659a74b77279 | 54 | #define PIN_CS_SD PTB23 |
Rhyme | 2:ddf8d8fffb4f | 55 | #define PIN_TSC_INTR PTC0 /* place holder */ |
Rhyme | 2:ddf8d8fffb4f | 56 | #define PIN_RESET_TFT PTC9 /* place holder */ |
Rhyme | 0:659a74b77279 | 57 | #define PIN_ADC_CH0 PTB2 |
Rhyme | 2:ddf8d8fffb4f | 58 | #define PIN_ADC_CH1 PTB10 |
Rhyme | 2:ddf8d8fffb4f | 59 | |
Rhyme | 2:ddf8d8fffb4f | 60 | #elif defined (TARGET_K22F) |
Rhyme | 2:ddf8d8fffb4f | 61 | #define PIN_SCLK PTD5 |
Rhyme | 2:ddf8d8fffb4f | 62 | #define PIN_MISO PTD7 |
Rhyme | 2:ddf8d8fffb4f | 63 | #define PIN_MOSI PTD6 |
Rhyme | 2:ddf8d8fffb4f | 64 | #define PIN_CS_TFT PTD4 |
Rhyme | 2:ddf8d8fffb4f | 65 | #define PIN_DC_TFT PTA1 |
Rhyme | 2:ddf8d8fffb4f | 66 | #define PIN_CS_TSC PTB19 |
Rhyme | 2:ddf8d8fffb4f | 67 | #define PIN_BL_TFT PTC6 |
Rhyme | 2:ddf8d8fffb4f | 68 | #define PIN_CS_SD PTA4 |
Rhyme | 2:ddf8d8fffb4f | 69 | #define PIN_TSC_INTR PTC7 /* place holder */ |
Rhyme | 2:ddf8d8fffb4f | 70 | #define PIN_RESET_TFT PTC9 /* place holder */ |
Rhyme | 2:ddf8d8fffb4f | 71 | #define PIN_ADC_CH0 PTB0 |
Rhyme | 2:ddf8d8fffb4f | 72 | #define PIN_ADC_CH1 PTC1 |
Rhyme | 2:ddf8d8fffb4f | 73 | |
Rhyme | 2:ddf8d8fffb4f | 74 | #elif defined (TARGET_NUCLEO_F411RE) |
Rhyme | 2:ddf8d8fffb4f | 75 | #define PIN_SCLK PA_5 |
Rhyme | 2:ddf8d8fffb4f | 76 | #define PIN_MISO PA_6 |
Rhyme | 2:ddf8d8fffb4f | 77 | #define PIN_MOSI PA_7 |
Rhyme | 2:ddf8d8fffb4f | 78 | #define PIN_CS_TFT PB_6 |
Rhyme | 2:ddf8d8fffb4f | 79 | #define PIN_DC_TFT PC_7 |
Rhyme | 2:ddf8d8fffb4f | 80 | #define PIN_CS_TSC PA_9 |
Rhyme | 2:ddf8d8fffb4f | 81 | #define PIN_BL_TFT PA_8 |
Rhyme | 2:ddf8d8fffb4f | 82 | #define PIN_CS_SD PB_5 |
Rhyme | 2:ddf8d8fffb4f | 83 | #define PIN_TSC_INTR PA_8 /* place holder */ |
Rhyme | 2:ddf8d8fffb4f | 84 | #define PIN_RESET_TFT PA_13 /* place holder */ |
Rhyme | 2:ddf8d8fffb4f | 85 | #define PIN_ADC_CH0 PA_0 |
Rhyme | 2:ddf8d8fffb4f | 86 | #define PIN_ADC_CH1 PA_4 |
Rhyme | 2:ddf8d8fffb4f | 87 | |
Rhyme | 2:ddf8d8fffb4f | 88 | #elif defined (TARGET_K20D50M) |
Rhyme | 2:ddf8d8fffb4f | 89 | #define PIN_SCLK PTD1 |
Rhyme | 2:ddf8d8fffb4f | 90 | #define PIN_MISO PTD3 |
Rhyme | 2:ddf8d8fffb4f | 91 | #define PIN_MOSI PTD2 |
Rhyme | 2:ddf8d8fffb4f | 92 | #define PIN_CS_TFT PTC2 |
Rhyme | 2:ddf8d8fffb4f | 93 | #define PIN_DC_TFT PTA2 |
Rhyme | 2:ddf8d8fffb4f | 94 | #define PIN_CS_TSC PTA12 |
Rhyme | 2:ddf8d8fffb4f | 95 | #define PIN_BL_TFT PTC4 |
Rhyme | 2:ddf8d8fffb4f | 96 | #define PIN_CS_SD PTC8 |
Rhyme | 2:ddf8d8fffb4f | 97 | #define PIN_TSC_INTR PTA4 /* place holder */ |
Rhyme | 2:ddf8d8fffb4f | 98 | #define PIN_RESET_TFT PTC7 /* place holder */ |
Rhyme | 2:ddf8d8fffb4f | 99 | #define PIN_ADC_CH0 PTC0 |
Rhyme | 2:ddf8d8fffb4f | 100 | #define PIN_ADC_CH1 PTD6 |
Rhyme | 0:659a74b77279 | 101 | |
Rhyme | 0:659a74b77279 | 102 | #else |
Rhyme | 2:ddf8d8fffb4f | 103 | #error TARGET NOT DEFINED |
Rhyme | 2:ddf8d8fffb4f | 104 | #define PIN_SCLK D13 |
Rhyme | 2:ddf8d8fffb4f | 105 | #define PIN_MISO D12 |
Rhyme | 2:ddf8d8fffb4f | 106 | #define PIN_MOSI D11 |
Rhyme | 2:ddf8d8fffb4f | 107 | #define PIN_CS_TFT D10 |
Rhyme | 2:ddf8d8fffb4f | 108 | #define PIN_DC_TFT D9 |
Rhyme | 2:ddf8d8fffb4f | 109 | #define PIN_CS_TSC D8 |
Rhyme | 2:ddf8d8fffb4f | 110 | #define PIN_BL_TFT D7 |
Rhyme | 2:ddf8d8fffb4f | 111 | #define PIN_CS_SD D4 |
Rhyme | 2:ddf8d8fffb4f | 112 | #define PIN_TSC_INTR D5-inside /* place holder */ |
Rhyme | 2:ddf8d8fffb4f | 113 | #define PIN_RESET_TFT D4-inside /* place holder */ |
Rhyme | 2:ddf8d8fffb4f | 114 | #define PIN_ADC_CH0 A0 |
Rhyme | 2:ddf8d8fffb4f | 115 | #define PIN_ADC_CH1 A2 |
Rhyme | 2:ddf8d8fffb4f | 116 | |
Rhyme | 0:659a74b77279 | 117 | #endif |
Rhyme | 0:659a74b77279 | 118 | |
Rhyme | 0:659a74b77279 | 119 | #define CHART_LEN 198 |
Rhyme | 0:659a74b77279 | 120 | |
Rhyme | 0:659a74b77279 | 121 | // NOTE: in case MIN_INTERVAL is too small |
Rhyme | 0:659a74b77279 | 122 | // the program hangs during ADC and timer interrupt |
Rhyme | 0:659a74b77279 | 123 | #define MIN_INTERVAL 30 |
Rhyme | 0:659a74b77279 | 124 | #define MAX_INTERVAL 20000 |
Rhyme | 0:659a74b77279 | 125 | #define NUM_MAX_MENU 20 |
Rhyme | 0:659a74b77279 | 126 | #define NUM_MAX_ANALOG_CH 2 |
Rhyme | 0:659a74b77279 | 127 | #define MODE_RUN 1 |
Rhyme | 0:659a74b77279 | 128 | #define MODE_STOP 0 |
Rhyme | 0:659a74b77279 | 129 | |
Rhyme | 0:659a74b77279 | 130 | #define opPlus 0 |
Rhyme | 0:659a74b77279 | 131 | #define opMinus 1 |
Rhyme | 0:659a74b77279 | 132 | #define opMul 2 |
Rhyme | 0:659a74b77279 | 133 | #define opDiv 3 |
Rhyme | 0:659a74b77279 | 134 | |
Rhyme | 0:659a74b77279 | 135 | |
Rhyme | 0:659a74b77279 | 136 | extern vt100 tty ; |
Rhyme | 0:659a74b77279 | 137 | extern AnalogIn *ach[] ; |
Rhyme | 0:659a74b77279 | 138 | extern Ticker timer ; |
Rhyme | 0:659a74b77279 | 139 | |
Rhyme | 0:659a74b77279 | 140 | extern DigitalOut backlight ; |
Rhyme | 0:659a74b77279 | 141 | extern ILI9341 TFT ; |
Rhyme | 0:659a74b77279 | 142 | extern SPI_STMPE610 TSC ; |
Rhyme | 0:659a74b77279 | 143 | extern TFTMenuItem *menu[] ; |
Rhyme | 0:659a74b77279 | 144 | extern int numMenu ; |
Rhyme | 0:659a74b77279 | 145 | |
Rhyme | 0:659a74b77279 | 146 | extern int num_digit ; |
Rhyme | 0:659a74b77279 | 147 | extern long prevValue ; |
Rhyme | 0:659a74b77279 | 148 | extern long topValue ; |
Rhyme | 0:659a74b77279 | 149 | extern int op ; |
Rhyme | 0:659a74b77279 | 150 | |
Rhyme | 0:659a74b77279 | 151 | void display(char *label = 0) ; |
Rhyme | 0:659a74b77279 | 152 | #endif /* _MAIN_H_ */ |