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@3:998ba6618f38, 2017-03-13 (annotated)
- Committer:
- Rhyme
- Date:
- Mon Mar 13 00:50:32 2017 +0000
- Revision:
- 3:998ba6618f38
- Parent:
- 2:ddf8d8fffb4f
Support of MAX32600MBED is under construction
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 | 3:998ba6618f38 | 102 | #elif defined (TARGET_MAX32600MBED) |
Rhyme | 3:998ba6618f38 | 103 | /* I2C */ |
Rhyme | 3:998ba6618f38 | 104 | #define PIN_SCL P2_7 |
Rhyme | 3:998ba6618f38 | 105 | #define PIN_SDA P2_6 |
Rhyme | 3:998ba6618f38 | 106 | /* SPI */ |
Rhyme | 3:998ba6618f38 | 107 | #define PIN_SCLK P2_0 |
Rhyme | 3:998ba6618f38 | 108 | #define PIN_MISO P2_2 |
Rhyme | 3:998ba6618f38 | 109 | #define PIN_MOSI P2_1 |
Rhyme | 3:998ba6618f38 | 110 | #define PIN_CS0 P2_3 |
Rhyme | 3:998ba6618f38 | 111 | /* Interrupt */ |
Rhyme | 3:998ba6618f38 | 112 | #define PIN_INT0 P2_4 |
Rhyme | 3:998ba6618f38 | 113 | #define PIN_INT1 P2_5 |
Rhyme | 3:998ba6618f38 | 114 | #define PIN_INT2 P1_7 |
Rhyme | 3:998ba6618f38 | 115 | #define PIN_INT3 P1_6 |
Rhyme | 3:998ba6618f38 | 116 | #define PIN_INT4 P1_5 |
Rhyme | 3:998ba6618f38 | 117 | #define PIN_INT5 P1_4 |
Rhyme | 3:998ba6618f38 | 118 | /* Analog In */ |
Rhyme | 3:998ba6618f38 | 119 | #define PIN_AN0 AIN_0P |
Rhyme | 3:998ba6618f38 | 120 | #define PIN_AN1 AIN_1P |
Rhyme | 3:998ba6618f38 | 121 | #define PIN_AN2 AIN_2P |
Rhyme | 3:998ba6618f38 | 122 | #define PIN_AN3 AIN_3P |
Rhyme | 3:998ba6618f38 | 123 | #define PIN_AN4 AIN_4P |
Rhyme | 3:998ba6618f38 | 124 | #define PIN_AN5 AIN_5P |
Rhyme | 3:998ba6618f38 | 125 | #define BOARD_NAME "MAX32600MBED" |
Rhyme | 3:998ba6618f38 | 126 | |
Rhyme | 3:998ba6618f38 | 127 | #define PIN_CS_TFT P2_3 // D10 PTD0 |
Rhyme | 3:998ba6618f38 | 128 | #define PIN_DC_TFT P2_4 // D9 PTD5 |
Rhyme | 3:998ba6618f38 | 129 | #define PIN_CS_TSC P2_5 // D8 PTA13 |
Rhyme | 3:998ba6618f38 | 130 | #define PIN_BL_TFT P1_7 // D7 PTC9 |
Rhyme | 3:998ba6618f38 | 131 | #define PIN_CS_SD P1_4 // D4 PTA4 |
Rhyme | 3:998ba6618f38 | 132 | #define PIN_TSC_INTR P5_4 // PTC9 /* place holder */ |
Rhyme | 3:998ba6618f38 | 133 | #define PIN_RESET_TFT P5_5 /// PTB10 /* place holder */ |
Rhyme | 3:998ba6618f38 | 134 | #define PIN_ADC_CH0 AIN_0P // A0 PTB0 |
Rhyme | 3:998ba6618f38 | 135 | #define PIN_ADC_CH1 AIN_2P // A2 PTB2 |
Rhyme | 0:659a74b77279 | 136 | #else |
Rhyme | 2:ddf8d8fffb4f | 137 | #error TARGET NOT DEFINED |
Rhyme | 2:ddf8d8fffb4f | 138 | #define PIN_SCLK D13 |
Rhyme | 2:ddf8d8fffb4f | 139 | #define PIN_MISO D12 |
Rhyme | 2:ddf8d8fffb4f | 140 | #define PIN_MOSI D11 |
Rhyme | 2:ddf8d8fffb4f | 141 | #define PIN_CS_TFT D10 |
Rhyme | 2:ddf8d8fffb4f | 142 | #define PIN_DC_TFT D9 |
Rhyme | 2:ddf8d8fffb4f | 143 | #define PIN_CS_TSC D8 |
Rhyme | 2:ddf8d8fffb4f | 144 | #define PIN_BL_TFT D7 |
Rhyme | 2:ddf8d8fffb4f | 145 | #define PIN_CS_SD D4 |
Rhyme | 2:ddf8d8fffb4f | 146 | #define PIN_TSC_INTR D5-inside /* place holder */ |
Rhyme | 2:ddf8d8fffb4f | 147 | #define PIN_RESET_TFT D4-inside /* place holder */ |
Rhyme | 2:ddf8d8fffb4f | 148 | #define PIN_ADC_CH0 A0 |
Rhyme | 2:ddf8d8fffb4f | 149 | #define PIN_ADC_CH1 A2 |
Rhyme | 2:ddf8d8fffb4f | 150 | |
Rhyme | 0:659a74b77279 | 151 | #endif |
Rhyme | 0:659a74b77279 | 152 | |
Rhyme | 0:659a74b77279 | 153 | #define CHART_LEN 198 |
Rhyme | 0:659a74b77279 | 154 | |
Rhyme | 0:659a74b77279 | 155 | // NOTE: in case MIN_INTERVAL is too small |
Rhyme | 0:659a74b77279 | 156 | // the program hangs during ADC and timer interrupt |
Rhyme | 0:659a74b77279 | 157 | #define MIN_INTERVAL 30 |
Rhyme | 0:659a74b77279 | 158 | #define MAX_INTERVAL 20000 |
Rhyme | 0:659a74b77279 | 159 | #define NUM_MAX_MENU 20 |
Rhyme | 0:659a74b77279 | 160 | #define NUM_MAX_ANALOG_CH 2 |
Rhyme | 0:659a74b77279 | 161 | #define MODE_RUN 1 |
Rhyme | 0:659a74b77279 | 162 | #define MODE_STOP 0 |
Rhyme | 0:659a74b77279 | 163 | |
Rhyme | 0:659a74b77279 | 164 | #define opPlus 0 |
Rhyme | 0:659a74b77279 | 165 | #define opMinus 1 |
Rhyme | 0:659a74b77279 | 166 | #define opMul 2 |
Rhyme | 0:659a74b77279 | 167 | #define opDiv 3 |
Rhyme | 0:659a74b77279 | 168 | |
Rhyme | 0:659a74b77279 | 169 | |
Rhyme | 0:659a74b77279 | 170 | extern vt100 tty ; |
Rhyme | 0:659a74b77279 | 171 | extern AnalogIn *ach[] ; |
Rhyme | 0:659a74b77279 | 172 | extern Ticker timer ; |
Rhyme | 0:659a74b77279 | 173 | |
Rhyme | 0:659a74b77279 | 174 | extern DigitalOut backlight ; |
Rhyme | 0:659a74b77279 | 175 | extern ILI9341 TFT ; |
Rhyme | 0:659a74b77279 | 176 | extern SPI_STMPE610 TSC ; |
Rhyme | 0:659a74b77279 | 177 | extern TFTMenuItem *menu[] ; |
Rhyme | 0:659a74b77279 | 178 | extern int numMenu ; |
Rhyme | 0:659a74b77279 | 179 | |
Rhyme | 0:659a74b77279 | 180 | extern int num_digit ; |
Rhyme | 0:659a74b77279 | 181 | extern long prevValue ; |
Rhyme | 0:659a74b77279 | 182 | extern long topValue ; |
Rhyme | 0:659a74b77279 | 183 | extern int op ; |
Rhyme | 0:659a74b77279 | 184 | |
Rhyme | 0:659a74b77279 | 185 | void display(char *label = 0) ; |
Rhyme | 0:659a74b77279 | 186 | #endif /* _MAIN_H_ */ |