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

Dependencies:   EALib I2S LM75B SDFileSystem mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers TestTrimpot.cpp Source File

TestTrimpot.cpp

00001 /*
00002  *  Copyright 2013 Embedded Artists AB
00003  *
00004  *  Licensed under the Apache License, Version 2.0 (the "License");
00005  *  you may not use this file except in compliance with the License.
00006  *  You may obtain a copy of the License at
00007  *
00008  *    http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  *  Unless required by applicable law or agreed to in writing, software
00011  *  distributed under the License is distributed on an "AS IS" BASIS,
00012  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  *  See the License for the specific language governing permissions and
00014  *  limitations under the License.
00015  */
00016 
00017 /******************************************************************************
00018  * Includes
00019  *****************************************************************************/
00020 
00021 #include "mbed.h"
00022 #include "TestTrimpot.h"
00023 
00024 /******************************************************************************
00025  * Defines and typedefs
00026  *****************************************************************************/
00027 
00028 #define MIN_VALUE  (0.010f)
00029 #define MAX_VALUE  (0.990f)
00030 
00031 /******************************************************************************
00032  * Public Functions
00033  *****************************************************************************/
00034 
00035 bool TestTrimpot::runTest() {
00036     AnalogIn trimpot(p15);
00037     bool min = false;
00038     bool max = false;
00039 
00040     printf("Reading trimpot for 5 seconds...\n");  
00041 
00042     // Reads the analog value of the right trimpot every 100ms for
00043     // up to five seconds or until both end limit have been reached.
00044     for (int i = 0; i < 50; i++) {
00045         float f = trimpot.read();
00046         printf("Trimpot = %.3f\n", f);
00047         if (f < MIN_VALUE) {
00048             min = true;
00049         } else if (f > MAX_VALUE) {
00050             max = true;
00051         }
00052         if (min && max) {
00053             printf("Test passed\n");
00054             return true;
00055         }
00056 
00057         wait(0.1);
00058     }
00059     printf("Trimpot does not reach limits (%.3f - %.3f)!\n", MIN_VALUE, MAX_VALUE);
00060     return false;
00061 }
00062 
00063