fork of seeed studio 4-digit display for st nucleo board
Dependencies: Data_Clock_Pair Seeed_Chainable_LED Seeed_Four_Digit_Disp Seeed_IR_Temp_Sensor Seeed_Led_Bar
Fork of Seeed_Grove_4_Digit_Display_Clock by
SeeedQTouch.h
- Committer:
- tulanthoar
- Date:
- 2017-06-22
- Revision:
- 20:2e72ddd68cda
File content as of revision 20:2e72ddd68cda:
#ifndef MBED_SEEED_Q_TOUCH_H #define MBED_SEEED_Q_TOUCH_H #include "mbed.h" #include "DataClockPair.h" #define QTOUCH_REG_RESET 0X39 // reset class SeeedQTouch { static const int devAddr_ = 0x1b; int readOpCode_; int writeOpCode_; static const int stateReg_ = 0x03; static const int calibrateReg_ = 0x38; I2C i2c_; int read_register_(int address, Serial* pc); int read_state_(Serial* pc); public: SeeedQTouch(DataClockPair pins); int key_touch(Serial* pc); }; SeeedQTouch::SeeedQTouch(DataClockPair pins) : i2c_(pins.dataPin, pins.clockPin) { /* readOpCode_ = devAddr_ | 0x01; */ /* writeOpCode_ = devAddr_ & 0xFE; */ /* writeOpCode_ = devAddr_ | 0x00; */ readOpCode_ = devAddr_; writeOpCode_ = devAddr_; } int SeeedQTouch::read_register_(int address, Serial* pc) { int success; char dataWrite[2]; char resetWrite[2]; char dataRead[2]; dataWrite[0] = 0x00; dataWrite[1] = 0x55; resetWrite[0] = QTOUCH_REG_RESET; resetWrite[1] = 0x55; /* int success = i2c_.write(devAddr_, dataWrite, 1, 0); */ /* if( pc ) pc->printf("requesting register %i success is %i", dataWrite[0], success); */ /* dataWrite[0] = 0x55; */ success = i2c_.write(writeOpCode_, resetWrite, 2); success = i2c_.write(writeOpCode_, dataWrite, 2); if( pc ) pc->printf("requesting register %i success is %i", dataWrite[0], success); /* dataWrite[0] = stateReg_; */ /* wait_ms(1); */ /* i2c_.start(); */ /* wait_ms(1); */ /* success = i2c_.write(devAddr_, dataWrite, 1, 1); */ /* wait_ms(1); */ success = i2c_.read(readOpCode_, dataRead, 2); if( pc ) pc->printf("return value is %i or %i success is %i", dataRead[0] , dataRead[1], success); /* i2c_.stop(); */ wait_ms(1); /* int result; */ /* i2c_.start(); */ wait_ms(1); /* result = i2c_.read(1); */ wait_ms(1); /* i2c_.stop(); */ return dataRead[0]; } int SeeedQTouch::read_state_(Serial* pc) { return read_register_(0x03, pc); } int SeeedQTouch::key_touch(Serial* pc = 0) { int keys = read_state_(pc); return(keys); } #endif