int main(){ unsigned char statusAccel, accelerationReady; OSCConfiguration(); //Running at 40 MIPS IOConfiguration(); //EINT and SPI pins mapped SPIConfiguration(); //SPI1 configuration for accelerometer INT1Configuration(); //INT1 configuration for accelerometer INT2Configuration(); //INT2 configuration for accelerometer TIMER1Configuration(); //TIMER1 configuration LCDInitialization(); //SplashScreen(); LCDClearScreen(); ACCELInitialization(); statusAccel = SPIRead(MCTL); average = 0; averageShow = 0; accelerationx = 0; lastAccelerationx = 0; velocityx = 0; lastVelocityx = 0; while(1) { statusAccel = ACCELGetStatus(); if (statusAccel & 0x01) { //if data is ready in accelerometer xAxis = ACCELReadAxis(X_AXIS8); yAxis = ACCELReadAxis(Y_AXIS8); zAxis = ACCELReadAxis(Z_AXIS8); accelerationx += (float)xAxis; average++; if (average == 5){ accelerationx /= average; accelerationx *= -1; average = 0; if (accelerationx > 3 || accelerationx < -3){ accelerationx = (accelerationx* 19.6) / 127; accelerationx *= 0.08; velocityx = lastVelocityx + lastAccelerationx + ((accelerationx - lastAccelerationx) / 2); lastVelocityx = velocityx; lastAccelerationx = accelerationx; accelerationx = 0; if(velocityx < 0) velocityx = 0; } } if(averageShow++ == 7){ averageShow = 0; ShowVelocity(); } } } return 1; }
void lcdTest() { LCDConfiguration(); TMRConfiguration(); LCDInitialization(); LCDWrite(0x53); //S LCDWrite(0x75); //u LCDWrite(0x63); //c LCDWrite(0x6B); //k LCDWrite(0x20); //' ' LCDWrite(0x69); //i LCDWrite(0x74); //t LCDWrite(0x21); //! }