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@0:659a74b77279, 2015-08-02 (annotated)
- 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?
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 | 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_ */ |