Production Test Program (PTP) for the LPC4088 Experiment Base Board
Dependencies: EALib I2S LM75B SDFileSystem mbed
TestJoystick.cpp
- Committer:
- embeddedartists
- Date:
- 2014-10-01
- Revision:
- 9:eb6086159020
- Parent:
- 2:2f4b7535ceb3
File content as of revision 9:eb6086159020:
/*
* Copyright 2013 Embedded Artists AB
*
* 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.
*/
/******************************************************************************
* Includes
*****************************************************************************/
#include "mbed.h"
#include "TestJoystick.h"
/******************************************************************************
* Defines and typedefs
*****************************************************************************/
#define TIMEOUT (100)
/******************************************************************************
* Public Functions
*****************************************************************************/
bool TestJoystick::runTest() {
DigitalIn up(p32);
DigitalIn down(p38);
DigitalIn left(p39);
DigitalIn right(p37);
DigitalIn center(p31);
printf("Reading joystick for %d seconds...\n", TIMEOUT/10);
printf("Move it in all directions and click it!\n");
uint16_t mask = 0;
for (int i = 0; i < TIMEOUT; i++) {
bool line = false;
if (up.read() == 0) { printf("UP "); line = true; mask |= 0x01; }
if (down.read() == 0) { printf("DOWN "); line = true; mask |= 0x02; }
if (left.read() == 0) { printf("LEFT "); line = true; mask |= 0x04; }
if (right.read() == 0) { printf("RIGHT "); line = true; mask |= 0x08; }
if (center.read() == 0) { printf("CENTER ");line = true; mask |= 0x10; }
if (line) {
printf("\n");
}
if (mask == 0x1F) {
printf("All directions tested. Done!\n");
return true;
}
wait(0.1);
if (i%10 == 0) {
printf("%ds\n", (TIMEOUT-i)/10);
}
}
printf("Failed to detect all joystick directions\n");
return false;
}