Initial Release of Library for PAT9125 OTS on L476RG Platform
Dependencies: mbed
main.cpp
- Committer:
- pixus_mbed
- Date:
- 2018-02-12
- Revision:
- 21:01862e43f169
- Parent:
- 18:27c8c623f5d4
File content as of revision 21:01862e43f169:
/* mbed Microcontroller Library * Copyright (c) 2006-2013 ARM Limited * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "mbed.h" #include "pixart_lcm.h" #include "pat9125_i2c.h" #include "pat9125_mbed.h" pat9125_mbed_state_s g_pat9125_mbed_state ; pat9125_mbed *gp_pat9125_mbed ; pixart_lcm *gp_pixart_lcm = NULL; SPI spi(SPI_MOSI, SPI_MISO, SPI_SCK); Serial pc(USBTX, USBRX); #define I2C_SDA_PIN I2C_SDA #define I2C_SCL_PIN I2C_SCL //DigitalIn sdaDummy(I2C_SDA_PIN, PullUp); //DigitalIn sclDummy(I2C_SCL_PIN, PullUp); pat9125_i2c *gp_pat9125_i2c;//(I2C_SDA0, I2C_SCL0); DigitalOut PIN_LCM_CSB(PB_6); DigitalOut PIN_LCM_RSTB(PA_9); DigitalOut PIN_LCM_RS(PC_7); 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); #define I2C_ADDRESS 0x73 //----------------------------------------------------------------------- int main(void) { char addr = 0; char data ; // pc.set_flow_control(SerialBase::Disabled) ; pc.baud(115200); pc.printf("---------- Pixart PAT9125 Demo\n"); // +++++++ LCM Initialization +++++++ // // Chip must be deselected PIN_LCM_CSB = 1 ; // Setup the spi for 8 bit data, high steady state clock, // second edge capture, with a 1MHz clock rate spi.format(8,3); spi.frequency(1000000); gp_pixart_lcm = new pixart_lcm(&spi, &PIN_LCM_CSB, &PIN_LCM_RSTB, &PIN_LCM_RS) ; // ------- LCM Initialization ------- // // +++++++ 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.pBTN_L = &PIN_BTN_L ; g_pat9125_mbed_state.pBTN_R = &PIN_BTN_R ; g_pat9125_mbed_state.pINT = &PIN_SEN_MOTION; g_pat9125_mbed_state.pRLED = &PIN_RLED; g_pat9125_mbed_state.pGLED = &PIN_GLED; g_pat9125_mbed_state.pLCM = gp_pixart_lcm; 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_pixart_lcm->LCM_DisplayString_Boot(g_pat9125_mbed_state.sen_status); if(g_pat9125_mbed_state.sen_status == true) { pc.printf("Initial Sensor ... Done\n"); } else { pc.printf("Initial Sensor ... Fail\n"); } while(true) { gp_pat9125_mbed->task(); } }