Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BLE_API nRF51822 mbed
Fork of KS7 by
io.h@30:f67850cc3cfe, 2016-05-23 (annotated)
- Committer:
- masaaki_makabe
- Date:
- Mon May 23 05:15:58 2016 +0000
- Branch:
- KS3
- Revision:
- 30:f67850cc3cfe
- Child:
- 31:b5e19d153db4
io??????????????????main.cpp??????????????????
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| masaaki_makabe | 30:f67850cc3cfe | 1 | #ifndef io_H_ | 
| masaaki_makabe | 30:f67850cc3cfe | 2 | #define io_H_ | 
| masaaki_makabe | 30:f67850cc3cfe | 3 | |
| masaaki_makabe | 30:f67850cc3cfe | 4 | #include "mbed.h" | 
| masaaki_makabe | 30:f67850cc3cfe | 5 | |
| masaaki_makabe | 30:f67850cc3cfe | 6 | //#define UART_DEBUG | 
| masaaki_makabe | 30:f67850cc3cfe | 7 | |
| masaaki_makabe | 30:f67850cc3cfe | 8 | //#define PCB_VER1 // define for ver1 board (P0_26/27 -> P0_24/25) & ADC | 
| masaaki_makabe | 30:f67850cc3cfe | 9 | //#define PCB_VER2 | 
| masaaki_makabe | 30:f67850cc3cfe | 10 | //#define PCB_VER3 // default | 
| masaaki_makabe | 30:f67850cc3cfe | 11 | #define PCB_VER4 // with HX711 | 
| masaaki_makabe | 30:f67850cc3cfe | 12 | |
| masaaki_makabe | 30:f67850cc3cfe | 13 | //#define USE_JOYSTICK // define for using joystick as power switch in PCB_VER1 | 
| masaaki_makabe | 30:f67850cc3cfe | 14 | |
| masaaki_makabe | 30:f67850cc3cfe | 15 | // memo of load cell / gain | 
| masaaki_makabe | 30:f67850cc3cfe | 16 | // 0.9mV/kg(raw) -> 0.54V/kg(x600) | 
| masaaki_makabe | 30:f67850cc3cfe | 17 | // FS=+-1.65V -> 3.06kg(FS) | 
| masaaki_makabe | 30:f67850cc3cfe | 18 | |
| masaaki_makabe | 30:f67850cc3cfe | 19 | // 0.9mV/kg(raw) -> 0.297V/kg(x330) | 
| masaaki_makabe | 30:f67850cc3cfe | 20 | // FS=+-1.65V -> 3.06kg(FS) | 
| masaaki_makabe | 30:f67850cc3cfe | 21 | |
| masaaki_makabe | 30:f67850cc3cfe | 22 | //#define WEIGHT_COEFFICIENT (8.64) | 
| masaaki_makabe | 30:f67850cc3cfe | 23 | //#define WEIGHT_COEFFICIENT (3.15) | 
| masaaki_makabe | 30:f67850cc3cfe | 24 | // weight calibration on 2016/3/28 by akita11 in weight_calib150328.txt | 
| masaaki_makabe | 30:f67850cc3cfe | 25 | #define WEIGHT_COEFFICIENT (682.32) // for PCB_VER4 | 
| masaaki_makabe | 30:f67850cc3cfe | 26 | // 2000g = 6300 | 
| masaaki_makabe | 30:f67850cc3cfe | 27 | |
| masaaki_makabe | 30:f67850cc3cfe | 28 | //#define DISPLAY_ZERO_SUPPRESS // leading zero suppress on display | 
| masaaki_makabe | 30:f67850cc3cfe | 29 | |
| masaaki_makabe | 30:f67850cc3cfe | 30 | class io { | 
| masaaki_makabe | 30:f67850cc3cfe | 31 | public: | 
| masaaki_makabe | 30:f67850cc3cfe | 32 | #ifdef PCB_VER4 | 
| masaaki_makabe | 30:f67850cc3cfe | 33 | io(PinName CLK, PinName DAT); | 
| masaaki_makabe | 30:f67850cc3cfe | 34 | #else | 
| masaaki_makabe | 30:f67850cc3cfe | 35 | io(); | 
| masaaki_makabe | 30:f67850cc3cfe | 36 | #endif | 
| masaaki_makabe | 30:f67850cc3cfe | 37 | ~io(); | 
| masaaki_makabe | 30:f67850cc3cfe | 38 | int display_value; // 4-digit integer to display | 
| masaaki_makabe | 30:f67850cc3cfe | 39 | void display(float f); // set display brightness (0.0 - 1.0) | 
| masaaki_makabe | 30:f67850cc3cfe | 40 | |
| masaaki_makabe | 30:f67850cc3cfe | 41 | float get_weight(); // get (calibrated) weight [g] | 
| masaaki_makabe | 30:f67850cc3cfe | 42 | #ifdef PCB_VER4 | 
| masaaki_makabe | 30:f67850cc3cfe | 43 | uint32_t get_weight_raw(); // ADC raw value of weight gauage | 
| masaaki_makabe | 30:f67850cc3cfe | 44 | #else | 
| masaaki_makabe | 30:f67850cc3cfe | 45 | uint16_t get_weight_raw(); // ADC raw value of weight gauage | 
| masaaki_makabe | 30:f67850cc3cfe | 46 | #endif | 
| masaaki_makabe | 30:f67850cc3cfe | 47 | uint8_t get_switch(); // get switch status (1=pressed, 0=released) | 
| masaaki_makabe | 30:f67850cc3cfe | 48 | |
| masaaki_makabe | 30:f67850cc3cfe | 49 | void calibrate_weight(); // calibrate weight gauage | 
| masaaki_makabe | 30:f67850cc3cfe | 50 | void analog_pow(uint8_t f); // turn on/off analog power | 
| masaaki_makabe | 30:f67850cc3cfe | 51 | |
| masaaki_makabe | 30:f67850cc3cfe | 52 | #ifdef PCB_VER4 | 
| masaaki_makabe | 30:f67850cc3cfe | 53 | uint32_t _get_adc_raw(uint8_t ch); // ADC raw value, 0x0000 - 0xffffff | 
| masaaki_makabe | 30:f67850cc3cfe | 54 | uint32_t _adc0; // ADC value for calibrating zero point | 
| masaaki_makabe | 30:f67850cc3cfe | 55 | #else | 
| masaaki_makabe | 30:f67850cc3cfe | 56 | uint16_t _get_adc_raw(uint8_t ch); // ADC raw value, 0x0000 - 0xffff | 
| masaaki_makabe | 30:f67850cc3cfe | 57 | uint16_t _adc0; // ADC value for calibrating zero point | 
| masaaki_makabe | 30:f67850cc3cfe | 58 | #endif | 
| masaaki_makabe | 30:f67850cc3cfe | 59 | |
| masaaki_makabe | 30:f67850cc3cfe | 60 | #ifdef PCB_VER4 | 
| masaaki_makabe | 30:f67850cc3cfe | 61 | void power_save_mode(uint8_t f); // f=1 for power-save mode during sleep | 
| masaaki_makabe | 30:f67850cc3cfe | 62 | #endif | 
| masaaki_makabe | 30:f67850cc3cfe | 63 | |
| masaaki_makabe | 30:f67850cc3cfe | 64 | private: | 
| masaaki_makabe | 30:f67850cc3cfe | 65 | #ifdef PCB_VER4 | 
| masaaki_makabe | 30:f67850cc3cfe | 66 | #endif | 
| masaaki_makabe | 30:f67850cc3cfe | 67 | uint8_t _seg[4]; | 
| masaaki_makabe | 30:f67850cc3cfe | 68 | float _get_adc(uint8_t ch); // ADC value, 0.0 - 1.0 | 
| masaaki_makabe | 30:f67850cc3cfe | 69 | #ifdef PCB_VER1 | 
| masaaki_makabe | 30:f67850cc3cfe | 70 | float _get_x(); // raw value of joystick X | 
| masaaki_makabe | 30:f67850cc3cfe | 71 | float _get_y(); // raw value of joystick Y | 
| masaaki_makabe | 30:f67850cc3cfe | 72 | #endif | 
| masaaki_makabe | 30:f67850cc3cfe | 73 | // belows are for internal use only | 
| masaaki_makabe | 30:f67850cc3cfe | 74 | int _display_value; | 
| masaaki_makabe | 30:f67850cc3cfe | 75 | uint8_t _col; | 
| masaaki_makabe | 30:f67850cc3cfe | 76 | uint8_t _row_out[8]; | 
| masaaki_makabe | 30:f67850cc3cfe | 77 | void _set_col(); | 
| masaaki_makabe | 30:f67850cc3cfe | 78 | void _set_row(uint8_t d); | 
| masaaki_makabe | 30:f67850cc3cfe | 79 | uint8_t _set_segment(uint8_t d); | 
| masaaki_makabe | 30:f67850cc3cfe | 80 | void _timer_ticker(); | 
| masaaki_makabe | 30:f67850cc3cfe | 81 | DigitalOut *_sg0, *_sg1, *_sg2, *_sg3, *_sg4, *_sg5, *_sg6, *_sg7; | 
| masaaki_makabe | 30:f67850cc3cfe | 82 | DigitalOut *_sa0, *_sa1, *_sa2, *_pow; | 
| masaaki_makabe | 30:f67850cc3cfe | 83 | #ifdef PCB_VER1 | 
| masaaki_makabe | 30:f67850cc3cfe | 84 | AnalogIn *_jx, *_jy, *_weight; | 
| masaaki_makabe | 30:f67850cc3cfe | 85 | #endif | 
| masaaki_makabe | 30:f67850cc3cfe | 86 | #ifdef PCB_VER2 | 
| masaaki_makabe | 30:f67850cc3cfe | 87 | char _adc_dat[4]; | 
| masaaki_makabe | 30:f67850cc3cfe | 88 | #endif | 
| masaaki_makabe | 30:f67850cc3cfe | 89 | PwmOut *_pwm; | 
| masaaki_makabe | 30:f67850cc3cfe | 90 | #ifdef PCB_VER3 | 
| masaaki_makabe | 30:f67850cc3cfe | 91 | DigitalIn *_sw; | 
| masaaki_makabe | 30:f67850cc3cfe | 92 | DigitalOut *_adc_ck; | 
| masaaki_makabe | 30:f67850cc3cfe | 93 | DigitalIn *_adc_di; | 
| masaaki_makabe | 30:f67850cc3cfe | 94 | uint8_t _fDisplaying; | 
| masaaki_makabe | 30:f67850cc3cfe | 95 | #endif | 
| masaaki_makabe | 30:f67850cc3cfe | 96 | #ifdef PCB_VER4 | 
| masaaki_makabe | 30:f67850cc3cfe | 97 | DigitalIn *_sw; | 
| masaaki_makabe | 30:f67850cc3cfe | 98 | // DigitalOut *_adc_ck; // for software SPI | 
| masaaki_makabe | 30:f67850cc3cfe | 99 | // DigitalIn *_adc_di; // for software SPI | 
| masaaki_makabe | 30:f67850cc3cfe | 100 | DigitalOut *_reg_ps; | 
| masaaki_makabe | 30:f67850cc3cfe | 101 | DigitalOut *_adc_rate; | 
| masaaki_makabe | 30:f67850cc3cfe | 102 | uint32_t _PselSCK, _PselMISO; // for hardware SPI | 
| masaaki_makabe | 30:f67850cc3cfe | 103 | void _set_adc_ck(uint8_t f); // for hardware SPI | 
| masaaki_makabe | 30:f67850cc3cfe | 104 | void _enableSPI(uint8_t f); // for hardware SPI | 
| masaaki_makabe | 30:f67850cc3cfe | 105 | uint8_t _spi_transfer(void); // for hardware SPI | 
| masaaki_makabe | 30:f67850cc3cfe | 106 | uint8_t _fDisplaying; | 
| masaaki_makabe | 30:f67850cc3cfe | 107 | SPI _hx711; // for hardware SPI | 
| masaaki_makabe | 30:f67850cc3cfe | 108 | #endif | 
| masaaki_makabe | 30:f67850cc3cfe | 109 | |
| masaaki_makabe | 30:f67850cc3cfe | 110 | }; | 
| masaaki_makabe | 30:f67850cc3cfe | 111 | |
| masaaki_makabe | 30:f67850cc3cfe | 112 | #endif | 
