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 でも動くようになりました。

/media/uploads/Rhyme/img_1194.jpg

Committer:
Rhyme
Date:
Tue Apr 11 06:06:25 2017 +0000
Revision:
4:d4c937bcc469
Parent:
3:998ba6618f38
Support of MAX32600 added

Who changed what in which revision?

UserRevisionLine numberNew 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_ */