test
Dependencies: BLE_API nRF51822 mbed
Fork of KS7 by
io.h@36:3cca74c30551, 2016-08-12 (annotated)
- Committer:
- masaaki_makabe
- Date:
- Fri Aug 12 04:07:00 2016 +0000
- Branch:
- KS3
- Revision:
- 36:3cca74c30551
- Parent:
- 31:b5e19d153db4
???????????????????????????????
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 | 31:b5e19d153db4 | 5 | #include "common.h" |
masaaki_makabe | 30:f67850cc3cfe | 6 | |
masaaki_makabe | 30:f67850cc3cfe | 7 | //#define UART_DEBUG |
masaaki_makabe | 30:f67850cc3cfe | 8 | |
masaaki_makabe | 30:f67850cc3cfe | 9 | //#define PCB_VER1 // define for ver1 board (P0_26/27 -> P0_24/25) & ADC |
masaaki_makabe | 30:f67850cc3cfe | 10 | //#define PCB_VER2 |
masaaki_makabe | 30:f67850cc3cfe | 11 | //#define PCB_VER3 // default |
masaaki_makabe | 31:b5e19d153db4 | 12 | //#define PCB_VER4 // with HX711 |
masaaki_makabe | 30:f67850cc3cfe | 13 | |
masaaki_makabe | 30:f67850cc3cfe | 14 | //#define USE_JOYSTICK // define for using joystick as power switch in PCB_VER1 |
masaaki_makabe | 30:f67850cc3cfe | 15 | |
masaaki_makabe | 30:f67850cc3cfe | 16 | // memo of load cell / gain |
masaaki_makabe | 30:f67850cc3cfe | 17 | // 0.9mV/kg(raw) -> 0.54V/kg(x600) |
masaaki_makabe | 30:f67850cc3cfe | 18 | // FS=+-1.65V -> 3.06kg(FS) |
masaaki_makabe | 30:f67850cc3cfe | 19 | |
masaaki_makabe | 30:f67850cc3cfe | 20 | // 0.9mV/kg(raw) -> 0.297V/kg(x330) |
masaaki_makabe | 30:f67850cc3cfe | 21 | // FS=+-1.65V -> 3.06kg(FS) |
masaaki_makabe | 30:f67850cc3cfe | 22 | |
masaaki_makabe | 30:f67850cc3cfe | 23 | //#define WEIGHT_COEFFICIENT (8.64) |
masaaki_makabe | 30:f67850cc3cfe | 24 | //#define WEIGHT_COEFFICIENT (3.15) |
masaaki_makabe | 30:f67850cc3cfe | 25 | // weight calibration on 2016/3/28 by akita11 in weight_calib150328.txt |
masaaki_makabe | 30:f67850cc3cfe | 26 | #define WEIGHT_COEFFICIENT (682.32) // for PCB_VER4 |
masaaki_makabe | 30:f67850cc3cfe | 27 | // 2000g = 6300 |
masaaki_makabe | 30:f67850cc3cfe | 28 | |
masaaki_makabe | 30:f67850cc3cfe | 29 | //#define DISPLAY_ZERO_SUPPRESS // leading zero suppress on display |
masaaki_makabe | 30:f67850cc3cfe | 30 | |
masaaki_makabe | 30:f67850cc3cfe | 31 | class io { |
masaaki_makabe | 30:f67850cc3cfe | 32 | public: |
masaaki_makabe | 30:f67850cc3cfe | 33 | #ifdef PCB_VER4 |
masaaki_makabe | 30:f67850cc3cfe | 34 | io(PinName CLK, PinName DAT); |
masaaki_makabe | 30:f67850cc3cfe | 35 | #else |
masaaki_makabe | 30:f67850cc3cfe | 36 | io(); |
masaaki_makabe | 30:f67850cc3cfe | 37 | #endif |
masaaki_makabe | 30:f67850cc3cfe | 38 | ~io(); |
masaaki_makabe | 30:f67850cc3cfe | 39 | int display_value; // 4-digit integer to display |
masaaki_makabe | 30:f67850cc3cfe | 40 | void display(float f); // set display brightness (0.0 - 1.0) |
masaaki_makabe | 30:f67850cc3cfe | 41 | |
masaaki_makabe | 31:b5e19d153db4 | 42 | virtual float get_weight(); // get (calibrated) weight [g] |
masaaki_makabe | 30:f67850cc3cfe | 43 | #ifdef PCB_VER4 |
masaaki_makabe | 31:b5e19d153db4 | 44 | virtual uint32_t get_weight_raw(); // ADC raw value of weight gauage |
masaaki_makabe | 30:f67850cc3cfe | 45 | #else |
masaaki_makabe | 30:f67850cc3cfe | 46 | uint16_t get_weight_raw(); // ADC raw value of weight gauage |
masaaki_makabe | 30:f67850cc3cfe | 47 | #endif |
masaaki_makabe | 31:b5e19d153db4 | 48 | virtual uint8_t get_switch(); // get switch status (1=pressed, 0=released) |
masaaki_makabe | 30:f67850cc3cfe | 49 | |
masaaki_makabe | 31:b5e19d153db4 | 50 | virtual void calibrate_weight(); // calibrate weight gauage |
masaaki_makabe | 30:f67850cc3cfe | 51 | void analog_pow(uint8_t f); // turn on/off analog power |
masaaki_makabe | 30:f67850cc3cfe | 52 | |
masaaki_makabe | 30:f67850cc3cfe | 53 | #ifdef PCB_VER4 |
masaaki_makabe | 30:f67850cc3cfe | 54 | uint32_t _get_adc_raw(uint8_t ch); // ADC raw value, 0x0000 - 0xffffff |
masaaki_makabe | 30:f67850cc3cfe | 55 | uint32_t _adc0; // ADC value for calibrating zero point |
masaaki_makabe | 30:f67850cc3cfe | 56 | #else |
masaaki_makabe | 30:f67850cc3cfe | 57 | uint16_t _get_adc_raw(uint8_t ch); // ADC raw value, 0x0000 - 0xffff |
masaaki_makabe | 30:f67850cc3cfe | 58 | uint16_t _adc0; // ADC value for calibrating zero point |
masaaki_makabe | 30:f67850cc3cfe | 59 | #endif |
masaaki_makabe | 30:f67850cc3cfe | 60 | |
masaaki_makabe | 30:f67850cc3cfe | 61 | #ifdef PCB_VER4 |
masaaki_makabe | 30:f67850cc3cfe | 62 | void power_save_mode(uint8_t f); // f=1 for power-save mode during sleep |
masaaki_makabe | 30:f67850cc3cfe | 63 | #endif |
masaaki_makabe | 30:f67850cc3cfe | 64 | |
masaaki_makabe | 31:b5e19d153db4 | 65 | protected: |
masaaki_makabe | 30:f67850cc3cfe | 66 | #ifdef PCB_VER4 |
masaaki_makabe | 30:f67850cc3cfe | 67 | #endif |
masaaki_makabe | 30:f67850cc3cfe | 68 | uint8_t _seg[4]; |
masaaki_makabe | 30:f67850cc3cfe | 69 | float _get_adc(uint8_t ch); // ADC value, 0.0 - 1.0 |
masaaki_makabe | 30:f67850cc3cfe | 70 | #ifdef PCB_VER1 |
masaaki_makabe | 30:f67850cc3cfe | 71 | float _get_x(); // raw value of joystick X |
masaaki_makabe | 30:f67850cc3cfe | 72 | float _get_y(); // raw value of joystick Y |
masaaki_makabe | 30:f67850cc3cfe | 73 | #endif |
masaaki_makabe | 30:f67850cc3cfe | 74 | // belows are for internal use only |
masaaki_makabe | 30:f67850cc3cfe | 75 | int _display_value; |
masaaki_makabe | 30:f67850cc3cfe | 76 | uint8_t _col; |
masaaki_makabe | 30:f67850cc3cfe | 77 | uint8_t _row_out[8]; |
masaaki_makabe | 30:f67850cc3cfe | 78 | void _set_col(); |
masaaki_makabe | 30:f67850cc3cfe | 79 | void _set_row(uint8_t d); |
masaaki_makabe | 30:f67850cc3cfe | 80 | uint8_t _set_segment(uint8_t d); |
masaaki_makabe | 30:f67850cc3cfe | 81 | void _timer_ticker(); |
masaaki_makabe | 30:f67850cc3cfe | 82 | DigitalOut *_sg0, *_sg1, *_sg2, *_sg3, *_sg4, *_sg5, *_sg6, *_sg7; |
masaaki_makabe | 30:f67850cc3cfe | 83 | DigitalOut *_sa0, *_sa1, *_sa2, *_pow; |
masaaki_makabe | 30:f67850cc3cfe | 84 | #ifdef PCB_VER1 |
masaaki_makabe | 30:f67850cc3cfe | 85 | AnalogIn *_jx, *_jy, *_weight; |
masaaki_makabe | 30:f67850cc3cfe | 86 | #endif |
masaaki_makabe | 30:f67850cc3cfe | 87 | #ifdef PCB_VER2 |
masaaki_makabe | 30:f67850cc3cfe | 88 | char _adc_dat[4]; |
masaaki_makabe | 30:f67850cc3cfe | 89 | #endif |
masaaki_makabe | 30:f67850cc3cfe | 90 | PwmOut *_pwm; |
masaaki_makabe | 30:f67850cc3cfe | 91 | #ifdef PCB_VER3 |
masaaki_makabe | 30:f67850cc3cfe | 92 | DigitalIn *_sw; |
masaaki_makabe | 30:f67850cc3cfe | 93 | DigitalOut *_adc_ck; |
masaaki_makabe | 30:f67850cc3cfe | 94 | DigitalIn *_adc_di; |
masaaki_makabe | 30:f67850cc3cfe | 95 | uint8_t _fDisplaying; |
masaaki_makabe | 30:f67850cc3cfe | 96 | #endif |
masaaki_makabe | 30:f67850cc3cfe | 97 | #ifdef PCB_VER4 |
masaaki_makabe | 31:b5e19d153db4 | 98 | /*S------------------------------------------------------------------*/ |
masaaki_makabe | 31:b5e19d153db4 | 99 | protected: |
masaaki_makabe | 30:f67850cc3cfe | 100 | DigitalIn *_sw; |
masaaki_makabe | 31:b5e19d153db4 | 101 | virtual void display_unit(void){} |
masaaki_makabe | 31:b5e19d153db4 | 102 | /*E------------------------------------------------------------------*/ |
masaaki_makabe | 30:f67850cc3cfe | 103 | // DigitalOut *_adc_ck; // for software SPI |
masaaki_makabe | 30:f67850cc3cfe | 104 | // DigitalIn *_adc_di; // for software SPI |
masaaki_makabe | 30:f67850cc3cfe | 105 | DigitalOut *_reg_ps; |
masaaki_makabe | 30:f67850cc3cfe | 106 | DigitalOut *_adc_rate; |
masaaki_makabe | 30:f67850cc3cfe | 107 | uint32_t _PselSCK, _PselMISO; // for hardware SPI |
masaaki_makabe | 30:f67850cc3cfe | 108 | void _set_adc_ck(uint8_t f); // for hardware SPI |
masaaki_makabe | 30:f67850cc3cfe | 109 | void _enableSPI(uint8_t f); // for hardware SPI |
masaaki_makabe | 30:f67850cc3cfe | 110 | uint8_t _spi_transfer(void); // for hardware SPI |
masaaki_makabe | 30:f67850cc3cfe | 111 | uint8_t _fDisplaying; |
masaaki_makabe | 30:f67850cc3cfe | 112 | SPI _hx711; // for hardware SPI |
masaaki_makabe | 30:f67850cc3cfe | 113 | #endif |
masaaki_makabe | 30:f67850cc3cfe | 114 | |
masaaki_makabe | 30:f67850cc3cfe | 115 | }; |
masaaki_makabe | 30:f67850cc3cfe | 116 | |
masaaki_makabe | 30:f67850cc3cfe | 117 | #endif |