PixArt Optical Track Sensor, OTS, library initial release v1.0. Supports PAT9125, PAT9126, PAT9130, PAA5101. Future to support PAT9150.

Fork of Pixart_OTS by Hill Chen

Pixart_OTS_Task.h

Committer:
PixArtHC
Date:
2019-03-26
Revision:
1:95917b856631

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
 */

#pragma once
#include "mbed.h"
#include "Pixart_ComPort.h"

class Pixart_OTS_Task
{
public:
    virtual void reset_task(Pixart_ComPort &com_port){
        com_port.writeRegister(0x7F, 0x00);
        com_port.writeRegister(0x06, 0x80);}
    virtual void pre_task(Pixart_ComPort &com_port) {}
    virtual void periodic_task(Pixart_ComPort &com_port) {}
};

class Pixart_OTS_Task_5101: public Pixart_OTS_Task
{
private:
    uint16_t LD2LED_TH;
    uint16_t LED2LD_TH;
    uint16_t FIQ[8];
    uint16_t FIQ_AVG;
    uint8_t FIQt;
    uint8_t EXTLED_ON; // Mode index, 0:LD, 1:LED
    DigitalOut &m_ldp_enl;

    void PAA5101_LD_MODE(Pixart_ComPort &com_port);
    void PAA5101_EXTLED_MODE(Pixart_ComPort &com_port);
    
public:
    Pixart_OTS_Task_5101(DigitalOut &ldp_enl_pin);

    virtual void reset_task(Pixart_ComPort &com_port);
    virtual void pre_task(Pixart_ComPort &com_port);
    virtual void periodic_task(Pixart_ComPort &com_port);
};