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
- Committer:
- Rhyme
- Date:
- 2017-03-13
- Revision:
- 3:998ba6618f38
- Parent:
- 2:ddf8d8fffb4f
File content as of revision 3:998ba6618f38:
/** mbed oscilloscope my implementation of a oscillo scope
* Copyright (c) 2014, 2015 Motoo Tanaka @ Design Methodology Lab
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef _MAIN_H_
#define _MAIN_H_ inluded
#if defined (TARGET_KL25Z)
#define PIN_SCLK PTD1
#define PIN_MISO PTD3
#define PIN_MOSI PTD2
#define PIN_CS_TFT PTD0
#define PIN_DC_TFT PTD5
#define PIN_CS_TSC PTA13
#define PIN_BL_TFT PTC9
#define PIN_CS_SD PTA4
#define PIN_TSC_INTR PTC9 /* place holder */
#define PIN_RESET_TFT PTB10 /* place holder */
#define PIN_ADC_CH0 PTB0
#define PIN_ADC_CH1 PTB2
#elif defined (TARGET_KL46Z)
#define PIN_SCLK PTD5
#define PIN_MISO PTD7
#define PIN_MOSI PTD6
#define PIN_CS_TFT PTD4
#define PIN_DC_TFT PTD2
#define PIN_CS_TSC PTA13
#define PIN_BL_TFT PTC9
#define PIN_CS_SD PTA4
#define PIN_TSC_INTR PTC7 /* place holder */
#define PIN_RESET_TFT PTC6 /* place holder */
#define PIN_ADC_CH0 PTB0
#define PIN_ADC_CH1 PTB2
#elif defined (TARGET_K64F)
#define PIN_SCLK PTD1
#define PIN_MISO PTD3
#define PIN_MOSI PTD2
#define PIN_CS_TFT PTD0
#define PIN_DC_TFT PTC4
// for board rev E or later
#define PIN_CS_TSC PTC12
// for earlier boards use following line
// #define PIN_CS_TSC PTA0
#define PIN_BL_TFT PTC3
#define PIN_CS_SD PTB23
#define PIN_TSC_INTR PTC0 /* place holder */
#define PIN_RESET_TFT PTC9 /* place holder */
#define PIN_ADC_CH0 PTB2
#define PIN_ADC_CH1 PTB10
#elif defined (TARGET_K22F)
#define PIN_SCLK PTD5
#define PIN_MISO PTD7
#define PIN_MOSI PTD6
#define PIN_CS_TFT PTD4
#define PIN_DC_TFT PTA1
#define PIN_CS_TSC PTB19
#define PIN_BL_TFT PTC6
#define PIN_CS_SD PTA4
#define PIN_TSC_INTR PTC7 /* place holder */
#define PIN_RESET_TFT PTC9 /* place holder */
#define PIN_ADC_CH0 PTB0
#define PIN_ADC_CH1 PTC1
#elif defined (TARGET_NUCLEO_F411RE)
#define PIN_SCLK PA_5
#define PIN_MISO PA_6
#define PIN_MOSI PA_7
#define PIN_CS_TFT PB_6
#define PIN_DC_TFT PC_7
#define PIN_CS_TSC PA_9
#define PIN_BL_TFT PA_8
#define PIN_CS_SD PB_5
#define PIN_TSC_INTR PA_8 /* place holder */
#define PIN_RESET_TFT PA_13 /* place holder */
#define PIN_ADC_CH0 PA_0
#define PIN_ADC_CH1 PA_4
#elif defined (TARGET_K20D50M)
#define PIN_SCLK PTD1
#define PIN_MISO PTD3
#define PIN_MOSI PTD2
#define PIN_CS_TFT PTC2
#define PIN_DC_TFT PTA2
#define PIN_CS_TSC PTA12
#define PIN_BL_TFT PTC4
#define PIN_CS_SD PTC8
#define PIN_TSC_INTR PTA4 /* place holder */
#define PIN_RESET_TFT PTC7 /* place holder */
#define PIN_ADC_CH0 PTC0
#define PIN_ADC_CH1 PTD6
#elif defined (TARGET_MAX32600MBED)
/* I2C */
#define PIN_SCL P2_7
#define PIN_SDA P2_6
/* SPI */
#define PIN_SCLK P2_0
#define PIN_MISO P2_2
#define PIN_MOSI P2_1
#define PIN_CS0 P2_3
/* Interrupt */
#define PIN_INT0 P2_4
#define PIN_INT1 P2_5
#define PIN_INT2 P1_7
#define PIN_INT3 P1_6
#define PIN_INT4 P1_5
#define PIN_INT5 P1_4
/* Analog In */
#define PIN_AN0 AIN_0P
#define PIN_AN1 AIN_1P
#define PIN_AN2 AIN_2P
#define PIN_AN3 AIN_3P
#define PIN_AN4 AIN_4P
#define PIN_AN5 AIN_5P
#define BOARD_NAME "MAX32600MBED"
#define PIN_CS_TFT P2_3 // D10 PTD0
#define PIN_DC_TFT P2_4 // D9 PTD5
#define PIN_CS_TSC P2_5 // D8 PTA13
#define PIN_BL_TFT P1_7 // D7 PTC9
#define PIN_CS_SD P1_4 // D4 PTA4
#define PIN_TSC_INTR P5_4 // PTC9 /* place holder */
#define PIN_RESET_TFT P5_5 /// PTB10 /* place holder */
#define PIN_ADC_CH0 AIN_0P // A0 PTB0
#define PIN_ADC_CH1 AIN_2P // A2 PTB2
#else
#error TARGET NOT DEFINED
#define PIN_SCLK D13
#define PIN_MISO D12
#define PIN_MOSI D11
#define PIN_CS_TFT D10
#define PIN_DC_TFT D9
#define PIN_CS_TSC D8
#define PIN_BL_TFT D7
#define PIN_CS_SD D4
#define PIN_TSC_INTR D5-inside /* place holder */
#define PIN_RESET_TFT D4-inside /* place holder */
#define PIN_ADC_CH0 A0
#define PIN_ADC_CH1 A2
#endif
#define CHART_LEN 198
// NOTE: in case MIN_INTERVAL is too small
// the program hangs during ADC and timer interrupt
#define MIN_INTERVAL 30
#define MAX_INTERVAL 20000
#define NUM_MAX_MENU 20
#define NUM_MAX_ANALOG_CH 2
#define MODE_RUN 1
#define MODE_STOP 0
#define opPlus 0
#define opMinus 1
#define opMul 2
#define opDiv 3
extern vt100 tty ;
extern AnalogIn *ach[] ;
extern Ticker timer ;
extern DigitalOut backlight ;
extern ILI9341 TFT ;
extern SPI_STMPE610 TSC ;
extern TFTMenuItem *menu[] ;
extern int numMenu ;
extern int num_digit ;
extern long prevValue ;
extern long topValue ;
extern int op ;
void display(char *label = 0) ;
#endif /* _MAIN_H_ */