test publish

Dependencies:   BLE_API nRF51822 mbed

Fork of KS7 by masaaki makabe

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?

UserRevisionLine numberNew 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