Beispiel #1
0
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;
}
Beispiel #2
0
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);		//!
}