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

Dependencies:   EALib I2S LM75B SDFileSystem mbed

Committer:
embeddedartists
Date:
Wed Oct 01 11:16:38 2014 +0000
Revision:
9:eb6086159020
Parent:
2:2f4b7535ceb3
Updated used libraries

Who changed what in which revision?

UserRevisionLine numberNew contents of line
embeddedartists 2:2f4b7535ceb3 1 /*
embeddedartists 2:2f4b7535ceb3 2 * Copyright 2013 Embedded Artists AB
embeddedartists 2:2f4b7535ceb3 3 *
embeddedartists 2:2f4b7535ceb3 4 * Licensed under the Apache License, Version 2.0 (the "License");
embeddedartists 2:2f4b7535ceb3 5 * you may not use this file except in compliance with the License.
embeddedartists 2:2f4b7535ceb3 6 * You may obtain a copy of the License at
embeddedartists 2:2f4b7535ceb3 7 *
embeddedartists 2:2f4b7535ceb3 8 * http://www.apache.org/licenses/LICENSE-2.0
embeddedartists 2:2f4b7535ceb3 9 *
embeddedartists 2:2f4b7535ceb3 10 * Unless required by applicable law or agreed to in writing, software
embeddedartists 2:2f4b7535ceb3 11 * distributed under the License is distributed on an "AS IS" BASIS,
embeddedartists 2:2f4b7535ceb3 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
embeddedartists 2:2f4b7535ceb3 13 * See the License for the specific language governing permissions and
embeddedartists 2:2f4b7535ceb3 14 * limitations under the License.
embeddedartists 2:2f4b7535ceb3 15 */
embeddedartists 2:2f4b7535ceb3 16
embeddedartists 2:2f4b7535ceb3 17 /******************************************************************************
embeddedartists 2:2f4b7535ceb3 18 * Includes
embeddedartists 2:2f4b7535ceb3 19 *****************************************************************************/
embeddedartists 2:2f4b7535ceb3 20
embeddedartists 2:2f4b7535ceb3 21 #include "mbed.h"
embeddedartists 2:2f4b7535ceb3 22 #include "TestJoystick.h"
embeddedartists 2:2f4b7535ceb3 23
embeddedartists 2:2f4b7535ceb3 24 /******************************************************************************
embeddedartists 2:2f4b7535ceb3 25 * Defines and typedefs
embeddedartists 2:2f4b7535ceb3 26 *****************************************************************************/
embeddedartists 2:2f4b7535ceb3 27
embeddedartists 2:2f4b7535ceb3 28 #define TIMEOUT (100)
embeddedartists 2:2f4b7535ceb3 29
embeddedartists 2:2f4b7535ceb3 30 /******************************************************************************
embeddedartists 2:2f4b7535ceb3 31 * Public Functions
embeddedartists 2:2f4b7535ceb3 32 *****************************************************************************/
embeddedartists 2:2f4b7535ceb3 33
embeddedartists 2:2f4b7535ceb3 34 bool TestJoystick::runTest() {
embeddedartists 2:2f4b7535ceb3 35 DigitalIn up(p32);
embeddedartists 2:2f4b7535ceb3 36 DigitalIn down(p38);
embeddedartists 2:2f4b7535ceb3 37 DigitalIn left(p39);
embeddedartists 2:2f4b7535ceb3 38 DigitalIn right(p37);
embeddedartists 2:2f4b7535ceb3 39 DigitalIn center(p31);
embeddedartists 2:2f4b7535ceb3 40
embeddedartists 2:2f4b7535ceb3 41 printf("Reading joystick for %d seconds...\n", TIMEOUT/10);
embeddedartists 2:2f4b7535ceb3 42 printf("Move it in all directions and click it!\n");
embeddedartists 2:2f4b7535ceb3 43 uint16_t mask = 0;
embeddedartists 2:2f4b7535ceb3 44
embeddedartists 2:2f4b7535ceb3 45 for (int i = 0; i < TIMEOUT; i++) {
embeddedartists 2:2f4b7535ceb3 46 bool line = false;
embeddedartists 2:2f4b7535ceb3 47 if (up.read() == 0) { printf("UP "); line = true; mask |= 0x01; }
embeddedartists 2:2f4b7535ceb3 48 if (down.read() == 0) { printf("DOWN "); line = true; mask |= 0x02; }
embeddedartists 2:2f4b7535ceb3 49 if (left.read() == 0) { printf("LEFT "); line = true; mask |= 0x04; }
embeddedartists 2:2f4b7535ceb3 50 if (right.read() == 0) { printf("RIGHT "); line = true; mask |= 0x08; }
embeddedartists 2:2f4b7535ceb3 51 if (center.read() == 0) { printf("CENTER ");line = true; mask |= 0x10; }
embeddedartists 2:2f4b7535ceb3 52 if (line) {
embeddedartists 2:2f4b7535ceb3 53 printf("\n");
embeddedartists 2:2f4b7535ceb3 54 }
embeddedartists 2:2f4b7535ceb3 55 if (mask == 0x1F) {
embeddedartists 2:2f4b7535ceb3 56 printf("All directions tested. Done!\n");
embeddedartists 2:2f4b7535ceb3 57 return true;
embeddedartists 2:2f4b7535ceb3 58 }
embeddedartists 2:2f4b7535ceb3 59 wait(0.1);
embeddedartists 2:2f4b7535ceb3 60 if (i%10 == 0) {
embeddedartists 2:2f4b7535ceb3 61 printf("%ds\n", (TIMEOUT-i)/10);
embeddedartists 2:2f4b7535ceb3 62 }
embeddedartists 2:2f4b7535ceb3 63 }
embeddedartists 2:2f4b7535ceb3 64 printf("Failed to detect all joystick directions\n");
embeddedartists 2:2f4b7535ceb3 65 return false;
embeddedartists 2:2f4b7535ceb3 66 }
embeddedartists 2:2f4b7535ceb3 67
embeddedartists 2:2f4b7535ceb3 68