#include "CirquePinnacle.h"
class PinnacleTouch;

The abstract base class for driving the Pinnacle ASIC.

Constructors

PinnacleTouch(pinnacle_gpio_t dataReadyPin);

Methods

void feedEnabled(bool isEnabled);
bool isFeedEnabled();
void setDataMode(PinnacleDataMode mode);
PinnacleDataMode getDataMode();
bool isHardConfigured();
bool available();
void absoluteModeConfig(uint8_t zIdleCount = 30, bool invertX = false, bool invertY = false);
void relativeModeConfig(bool taps = true, bool rotate90 = false, bool secondaryTap = true, bool intellimouse = false, bool glideExtend = false);
void read(RelativeReport *report, bool readButtons = true);
void read(AbsoluteReport *report, bool readButtons = true);
void clearStatusFlags();
void allowSleep(bool isEnabled);
bool isAllowSleep();
void shutdown(bool isOff);
bool isShutdown();
void setSampleRate(uint16_t value);
uint16_t getSampleRate();
void detectFingerStylus(bool enableFinger = true, bool enableStylus = true, uint16_t sampleRate = 100);
bool calibrate(bool run = true, bool tap = true, bool trackError = true, bool nerd = true, bool background = true);
void setCalibrationMatrix(int16_t *matrix, uint8_t len = 46);
void getCalibrationMatrix(int16_t *matrix);
void setAdcGain(uint8_t sensitivity);
void tuneEdgeSensitivity(uint8_t xAxisWideZMin = 4, uint8_t yAxisWideZMin = 3);
void anymeasModeConfig(uint8_t gain = PINNACLE_GAIN_200, uint8_t frequency = PINNACLE_FREQ_0, uint32_t sampleLength = 512, uint8_t muxControl = PINNACLE_MUX_PNP, uint32_t apertureWidth = 500, uint8_t controlPowerCount = 1);
int16_t measureAdc(unsigned int bitsToToggle, unsigned int togglePolarity);
void startMeasureAdc(unsigned int bitsToToggle, unsigned int togglePolarity);
int16_t getMeasureAdc();
bool begin();