Production Test Program (PTP) for the LPC4088 Experiment Base Board

Dependencies:   EALib I2S LM75B SDFileSystem mbed

Revision:
2:2f4b7535ceb3
Parent:
1:47680ec5d783
Child:
3:7ef908e84ae1
--- a/BubbleDemo.cpp	Wed Aug 27 14:24:59 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,171 +0,0 @@
-/******************************************************************************
- * Includes
- *****************************************************************************/
-
-#include "mbed.h"
-
-#include "BubbleDemo.h"
-#include "DmTftBase.h"
-#include "wchar.h"
-
-/******************************************************************************
- * Typedefs and defines
- *****************************************************************************/
-
-#define PI 3.1415926535897932384626433832795
-
-/* Red color mask, 565 mode */
-#define REDMASK       0xF800
-/* Red shift value, 565 mode */
-#define REDSHIFT      11
-/* Green color mask, 565 mode */
-#define GREENMASK     0x07E0
-/* Green shift value, 565 mode */
-#define GREENSHIFT    5
-/* Blue color mask, 565 mode */
-#define BLUEMASK      0x001F
-/* Blue shift value, 565 mode */
-#define BLUESHIFT     0
-
-/* Number of colors in 565 mode */
-#define NUM_COLORS    65536
-/* Number of red colors in 565 mode */
-#define RED_COLORS    0x20
-/* Number of green colors in 565 mode */
-#define GREEN_COLORS  0x40
-/* Number of blue colors in 565 mode */
-#define BLUE_COLORS   0x20
-
-/******************************************************************************
- * Local variables
- *****************************************************************************/
-
-
-/******************************************************************************
- * External variables
- *****************************************************************************/
-
-
-/******************************************************************************
- * Local functions
- *****************************************************************************/
-
-
-void BubbleDemo::initialize() {
- float radian;
- const float phase1 = 2 * PI / 3;
- const float phase2 = 4 * PI / 3;
-
- for(i = 0; i < NumBalls; i++) {
-  x[i] = this->windowX / 2;
-  y[i] = this->windowY / 2;
-  r[i] = i * 2 + 10;
-
-  oldX[i] = x[i];
-  oldY[i] = y[i];
-
-  velX[i] = 1;
-  velY[i] = 1;
-
-  radian = i * 2 * PI / NumBalls;
-  red[i] = cos(radian) * RED_COLORS / 2 + (RED_COLORS / 2 - 1);
-  green[i] = cos(radian + phase2) * GREEN_COLORS / 2 + (GREEN_COLORS / 2 - 1);
-  blue[i] = cos(radian + phase1) * BLUE_COLORS / 2 + (BLUE_COLORS / 2 - 1);
- }
-}
-
-void BubbleDemo::collision() {
- float disX = x[j] - x[i];
- float disY = y[j] - y[i];
- float d2 = disX * disX + disY * disY;
-
- if(d2 != 0) {
-  float rij = r[i] + r[j];
-  float rij2 = rij * rij;
-
-  if(d2 < rij2) {
-   float ii = (disX * velX[i] + disY * velY[i]) / d2;
-   float ji = (disX * velY[i] - disY * velX[i]) / d2;
-   float ij = (disX * velX[j] + disY * velY[j]) / d2;
-   float jj = (disX * velY[j] - disY * velX[j]) / d2;
-   float ratio = rij / sqrt(d2);
-
-   velX[i] = ij * disX - ii * disY;
-   velY[i] = ij * disY + ii * disX;
-   velX[j] = ji * disX - jj * disY;
-   velY[j] = ji * disY + jj * disX;
-
-   disX *= (ratio - 1) / 2;
-   disY *= (ratio - 1) / 2;
-
-   x[j] += disX;
-   y[j] += disY;
-   x[i] -= disX;
-   y[i] -= disY;
-  }
- }
-}
-
-void BubbleDemo::borders() {
- if(x[i] >= this->windowX - r[i] - 1) {
-  x[i] = this->windowX - r[i] - 1;
-  velX[i] = -velX[i];
- } else if(x[i] <= r[i]) {
-  x[i] = r[i];
-  velX[i] = -velX[i];
- }
-
- if(y[i] >= this->windowY - r[i] - 1) {
-  y[i] = this->windowY - r[i] - 1;
-  velY[i] = -velY[i];
- } else if(y[i] <= r[i]) {
-  y[i] = r[i];
-  velY[i] = -velY[i];
- }
-}
-
-void BubbleDemo::draw() {
- tft->drawCircle(oldX[i], oldY[i], r[i], BLACK);
- tft->drawCircle(x[i], y[i], r[i], (red[i] << REDSHIFT) + (green[i] << GREENSHIFT) + (blue[i] << BLUESHIFT));
-
- oldX[i] = x[i];
- oldY[i] = y[i];
-}
-
-
-/******************************************************************************
- * Public functions
- *****************************************************************************/
- 
-BubbleDemo::BubbleDemo(DmTftBase* display, uint16_t dispWidth, uint16_t dispHeight) {
-
-    this->windowX = dispWidth;
-    this->windowY = dispHeight;
-    tft = display;
-
-    initialize();
-}
-
-void BubbleDemo::run(uint32_t loops, uint32_t delayMs) {
-  
-    tft->clearScreen();
-
-    for(int32_t n=0;n<loops;n++) {
-
-        for(i = 0; i < NumBalls; i++) {
-            x[i] += velX[i];
-            y[i] += velY[i];
-            
-            for(j = i + 1; j < NumBalls; j++)
-                collision();
-                
-            borders();
-            
-            if((int)x[i] != (int)oldX[i] || (int)y[i] != (int)oldY[i])
-                draw();
-        }
-
-        wait_ms(delayMs);
-    }
-}
-