Initial Release of Library for PAT9125 OTS on L476RG Platform
Dependencies: mbed
Diff: main.cpp
- Revision:
- 15:089f1d28d152
- Parent:
- 9:53b4b362cbb8
- Child:
- 16:7bea34dc0356
--- a/main.cpp Fri Oct 20 01:48:20 2017 +0000
+++ b/main.cpp Fri Oct 20 10:58:39 2017 +0000
@@ -19,18 +19,25 @@
#include "pat9125_i2c.h"
#include "pat9125_mbed.h"
+#define LCM_MODE
+
pat9125_mbed_state_s g_pat9125_mbed_state ;
pat9125_mbed *gp_pat9125_mbed ;
-pixart_lcm *gp_pixart_lcm ;
+pixart_lcm *gp_pixart_lcm = NULL;
+Serial *serial = NULL ;
+#ifdef LCM_MODE
+SPI spi(SPI_MOSI, SPI_MISO, SPI_SCK);
+#else
+Serial pc(USBTX, USBRX);
+#endif
-Serial pc(USBTX, USBRX);
#define I2C_SDA_PIN I2C_SDA
#define I2C_SCL_PIN I2C_SCL
-//DigitalIn sdaDummy(I2C_SDA0, PullUp);
-//DigitalIn sclDummy(I2C_SCL0, PullUp);
+//DigitalIn sdaDummy(I2C_SDA_PIN, PullUp);
+//DigitalIn sclDummy(I2C_SCL_PIN, PullUp);
pat9125_i2c *gp_pat9125_i2c;//(I2C_SDA0, I2C_SCL0);
-SPI spi(PA_7, NC, PA_5);
+
DigitalOut PIN_LCM_CSB(PB_6);
DigitalOut PIN_LCM_RSTB(PA_9);
@@ -38,8 +45,11 @@
InterruptIn PIN_SEN_MOTION(PB_3);
DigitalIn motionDummy(PB_3, PullUp);
+
DigitalIn PIN_BTN_L(PA_0);
+DigitalIn BTN_L_Dummy(PA_0, PullUp);
DigitalIn PIN_BTN_R(PA_1);
+DigitalIn BTN_R_Dummy(PA_1, PullUp);
DigitalOut PIN_GLED(PA_10);
DigitalOut PIN_RLED(PB_4);
@@ -48,12 +58,11 @@
//-----------------------------------------------------------------------
int main(void)
{
+ int i = 0;
char addr = 0;
char data ;
- pc.set_flow_control(SerialBase::Disabled) ;
- pc.baud(115200);
- pc.printf("---------- Pixart PAT9125 Demo\n");
+#ifdef LCM_MODE
// +++++++ LCM Initialization +++++++ //
// Chip must be deselected
PIN_LCM_CSB = 1 ;
@@ -64,12 +73,17 @@
spi.frequency(1000000);
gp_pixart_lcm = new pixart_lcm(&spi, &PIN_LCM_CSB, &PIN_LCM_RSTB, &PIN_LCM_RS) ;
// ------- LCM Initialization ------- //
-
+#else
+ serial = &pc ;
+ //pc.set_flow_control(SerialBase::Disabled) ;
+ pc.baud(115200);
+ pc.printf("---------- Pixart PAT9125 Demo\n");
+#endif
// +++++++ PAT9125 Initialization +++++++ //
gp_pat9125_i2c = new pat9125_i2c(I2C_SDA_PIN, I2C_SCL_PIN);
gp_pat9125_i2c->frequency(400000);
g_pat9125_mbed_state.p_i2c = gp_pat9125_i2c;
- g_pat9125_mbed_state.p_pc = &pc;
+ g_pat9125_mbed_state.p_pc = serial;
g_pat9125_mbed_state.pBTN_L = &PIN_BTN_L ;
g_pat9125_mbed_state.pBTN_R = &PIN_BTN_R ;
g_pat9125_mbed_state.pINT = &PIN_SEN_MOTION;
@@ -79,9 +93,10 @@
g_pat9125_mbed_state.slave_id = (I2C_ADDRESS << 1);
g_pat9125_mbed_state.sen_status = 0;
- gp_pat9125_mbed = new pat9125_mbed(&g_pat9125_mbed_state) ;
+ gp_pat9125_mbed = new pat9125_mbed(&g_pat9125_mbed_state) ;
+#ifdef LCM_MODE
gp_pixart_lcm->LCM_DisplayString_Boot(g_pat9125_mbed_state.sen_status);
-
+#else
if(g_pat9125_mbed_state.sen_status == true)
{
pc.printf("Initial Sensor ... Done\n");
@@ -90,8 +105,10 @@
{
pc.printf("Initial Sensor ... Fail\n");
}
+#endif
while(true)
{
gp_pat9125_mbed->task();
}
+
}
PAT9125EL - Miniature Optical Navigation for Surface Tracking