PixArt Optical Track Sensor, OTS, library initial release v1.0. Supports PAT9125, PAT9126, PAT9130, PAA5101. Future to support PAT9150.
Fork of Pixart_OTS by
Pixart_ComPort.cpp
- Committer:
- PixArtHC
- Date:
- 2019-03-26
- Revision:
- 1:95917b856631
- Parent:
- 0:2a85075b8467
File content as of revision 1:95917b856631:
/* PixArt Optical Finger Navigation, OFN, sensor driver. * By PixArt Imaging Inc. * Primary Engineer: Hill Chen (PixArt USA) * * License: Apache-2.0; http://www.apache.org/licenses/LICENSE-2.0 */ #include "Pixart_ComPort.h" Pixart_I2cComPort::Pixart_I2cComPort(I2C &i2c, int address): m_i2c(i2c), m_address(address) { m_i2c.frequency(400000); } void Pixart_I2cComPort::writeRegister(uint8_t addr, uint8_t data) { char data_write[2]; data_write[0] = addr; data_write[1] = data; m_i2c.write(m_address, data_write, 2, 0); } uint8_t Pixart_I2cComPort::readRegister(uint8_t addr) { char data_write[2]; char data_read[2]; data_write[0] = addr; m_i2c.write(m_address, data_write, 1, 0); m_i2c.read(m_address, data_read, 1, 0); return data_read[0]; } Pixart_SpiComPort::Pixart_SpiComPort(SPI &spi, DigitalOut &cs): m_spi(spi), m_cs(cs) { m_spi.format(8, 3); m_spi.frequency(1000000); m_cs = 1; } void Pixart_SpiComPort::writeRegister(uint8_t addr, uint8_t data) { m_cs = 0; addr = addr | 0x80; m_spi.write(addr); m_spi.write(data); m_cs = 1; } uint8_t Pixart_SpiComPort::readRegister(uint8_t addr) { m_cs = 0; addr = addr & 0x7F; m_spi.write(addr); //wait_us(1); uint8_t data_read = m_spi.write(0x00); m_cs = 1; return data_read; }