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:
Sun Aug 02 14:00:59 2015 +0000
Revision:
0:659a74b77279
Child:
2:ddf8d8fffb4f
commit before publish;

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 0:659a74b77279 15 // uncomment following line if K64F rev is E or later
Rhyme 0:659a74b77279 16 #define FRDM_K64F_VE
Rhyme 0:659a74b77279 17
Rhyme 0:659a74b77279 18 #if defined (TARGET_KL25Z)
Rhyme 0:659a74b77279 19 #define PIN_MOSI PTD2
Rhyme 0:659a74b77279 20 #define PIN_MISO PTD3
Rhyme 0:659a74b77279 21 #define PIN_SCLK PTD1
Rhyme 0:659a74b77279 22 #define PIN_CS_TFT PTD0
Rhyme 0:659a74b77279 23 #define PIN_DC_TFT PTD5
Rhyme 0:659a74b77279 24 #define PIN_BL_TFT PTC9
Rhyme 0:659a74b77279 25 #define PIN_CS_SD PTA4
Rhyme 0:659a74b77279 26 #define PIN_CS_TSC PTA13
Rhyme 0:659a74b77279 27 #define PIN_TSC_INTR PTC9
Rhyme 0:659a74b77279 28 #define PIN_RESET_TFT PTB10
Rhyme 0:659a74b77279 29 #define PIN_ADC_CH0 PTB0
Rhyme 0:659a74b77279 30 #define PIN_ADC_CH1 PTB1
Rhyme 0:659a74b77279 31
Rhyme 0:659a74b77279 32 #elif defined (TARGET_KL46Z)
Rhyme 0:659a74b77279 33 #define PIN_MOSI PTD6
Rhyme 0:659a74b77279 34 #define PIN_MISO PTD7
Rhyme 0:659a74b77279 35 #define PIN_SCLK PTD5
Rhyme 0:659a74b77279 36 #define PIN_CS_TFT PTD4
Rhyme 0:659a74b77279 37 #define PIN_DC_TFT PTD2
Rhyme 0:659a74b77279 38 #define PIN_BL_TFT PTC9
Rhyme 0:659a74b77279 39 #define PIN_CS_SD PTA4
Rhyme 0:659a74b77279 40 #define PIN_CS_TSC PTA13
Rhyme 0:659a74b77279 41 #define PIN_TSC_INTR PTC9
Rhyme 0:659a74b77279 42 #define PIN_RESET_TFT PTA20
Rhyme 0:659a74b77279 43 #define PIN_ADC_CH0 PTB0
Rhyme 0:659a74b77279 44 #define PIN_ADC_CH1 PTB1
Rhyme 0:659a74b77279 45
Rhyme 0:659a74b77279 46 #elif defined (TARGET_K64F)
Rhyme 0:659a74b77279 47 #define PIN_MOSI PTD2
Rhyme 0:659a74b77279 48 #define PIN_MISO PTD3
Rhyme 0:659a74b77279 49 #define PIN_SCLK PTD1
Rhyme 0:659a74b77279 50 #define PIN_CS_TFT PTD0
Rhyme 0:659a74b77279 51 #define PIN_DC_TFT PTC4
Rhyme 0:659a74b77279 52 #define PIN_BL_TFT PTC3
Rhyme 0:659a74b77279 53 #define PIN_CS_SD PTB23
Rhyme 0:659a74b77279 54 #ifdef FRDM_K64F_VE
Rhyme 0:659a74b77279 55 #define PIN_CS_TSC PTC12
Rhyme 0:659a74b77279 56 #else
Rhyme 0:659a74b77279 57 #define PIN_CS_TSC PTA0
Rhyme 0:659a74b77279 58 #endif
Rhyme 0:659a74b77279 59 #define PIN_TSC_INTR PTC3
Rhyme 0:659a74b77279 60 #define PIN_RESET_TFT PTB20
Rhyme 0:659a74b77279 61 #define PIN_ADC_CH0 PTB2
Rhyme 0:659a74b77279 62 #define PIN_ADC_CH1 PTB3
Rhyme 0:659a74b77279 63
Rhyme 0:659a74b77279 64 #else
Rhyme 0:659a74b77279 65 #error TARGET NOT DEFINED
Rhyme 0:659a74b77279 66 #endif
Rhyme 0:659a74b77279 67
Rhyme 0:659a74b77279 68 #define CHART_LEN 198
Rhyme 0:659a74b77279 69
Rhyme 0:659a74b77279 70 // NOTE: in case MIN_INTERVAL is too small
Rhyme 0:659a74b77279 71 // the program hangs during ADC and timer interrupt
Rhyme 0:659a74b77279 72 #define MIN_INTERVAL 30
Rhyme 0:659a74b77279 73 #define MAX_INTERVAL 20000
Rhyme 0:659a74b77279 74 #define NUM_MAX_MENU 20
Rhyme 0:659a74b77279 75 #define NUM_MAX_ANALOG_CH 2
Rhyme 0:659a74b77279 76 #define MODE_RUN 1
Rhyme 0:659a74b77279 77 #define MODE_STOP 0
Rhyme 0:659a74b77279 78
Rhyme 0:659a74b77279 79 #define opPlus 0
Rhyme 0:659a74b77279 80 #define opMinus 1
Rhyme 0:659a74b77279 81 #define opMul 2
Rhyme 0:659a74b77279 82 #define opDiv 3
Rhyme 0:659a74b77279 83
Rhyme 0:659a74b77279 84
Rhyme 0:659a74b77279 85 extern vt100 tty ;
Rhyme 0:659a74b77279 86 extern AnalogIn *ach[] ;
Rhyme 0:659a74b77279 87 extern Ticker timer ;
Rhyme 0:659a74b77279 88
Rhyme 0:659a74b77279 89 extern DigitalOut backlight ;
Rhyme 0:659a74b77279 90 extern ILI9341 TFT ;
Rhyme 0:659a74b77279 91 extern SPI_STMPE610 TSC ;
Rhyme 0:659a74b77279 92 extern TFTMenuItem *menu[] ;
Rhyme 0:659a74b77279 93 extern int numMenu ;
Rhyme 0:659a74b77279 94
Rhyme 0:659a74b77279 95 extern int num_digit ;
Rhyme 0:659a74b77279 96 extern long prevValue ;
Rhyme 0:659a74b77279 97 extern long topValue ;
Rhyme 0:659a74b77279 98 extern int op ;
Rhyme 0:659a74b77279 99
Rhyme 0:659a74b77279 100 void display(char *label = 0) ;
Rhyme 0:659a74b77279 101 #endif /* _MAIN_H_ */