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:
3:7ef908e84ae1
Updated used libraries

Who changed what in which revision?

UserRevisionLine numberNew contents of line
embeddedartists 0:0d5190d379d3 1 /******************************************************************************
embeddedartists 0:0d5190d379d3 2 * Includes
embeddedartists 0:0d5190d379d3 3 *****************************************************************************/
embeddedartists 0:0d5190d379d3 4 #include "mbed.h"
embeddedartists 0:0d5190d379d3 5
embeddedartists 2:2f4b7535ceb3 6 #include "TestRGBLed.h"
embeddedartists 2:2f4b7535ceb3 7 #include "TestFileSystemMCI.h"
embeddedartists 2:2f4b7535ceb3 8 #include "TestFileSystemSPI.h"
embeddedartists 2:2f4b7535ceb3 9 #include "TestAcc.h"
embeddedartists 2:2f4b7535ceb3 10 #include "TestTemperature.h"
embeddedartists 2:2f4b7535ceb3 11 #include "TestTrimpot.h"
embeddedartists 2:2f4b7535ceb3 12 #include "TestJoystick.h"
embeddedartists 2:2f4b7535ceb3 13 #include "TestAudio.h"
embeddedartists 2:2f4b7535ceb3 14 #include "TestShiftreg.h"
embeddedartists 2:2f4b7535ceb3 15 #include "TestDisplay.h"
embeddedartists 0:0d5190d379d3 16
embeddedartists 0:0d5190d379d3 17 /******************************************************************************
embeddedartists 0:0d5190d379d3 18 * Typedefs and defines
embeddedartists 0:0d5190d379d3 19 *****************************************************************************/
embeddedartists 0:0d5190d379d3 20
embeddedartists 0:0d5190d379d3 21
embeddedartists 0:0d5190d379d3 22 /******************************************************************************
embeddedartists 0:0d5190d379d3 23 * Local variables
embeddedartists 0:0d5190d379d3 24 *****************************************************************************/
embeddedartists 0:0d5190d379d3 25
embeddedartists 0:0d5190d379d3 26 DigitalOut myled(LED1);
embeddedartists 0:0d5190d379d3 27
embeddedartists 0:0d5190d379d3 28 /******************************************************************************
embeddedartists 0:0d5190d379d3 29 * Local functions
embeddedartists 0:0d5190d379d3 30 *****************************************************************************/
embeddedartists 0:0d5190d379d3 31
embeddedartists 1:47680ec5d783 32
embeddedartists 1:47680ec5d783 33 static void setupSerial(int baudrate)
embeddedartists 1:47680ec5d783 34 {
embeddedartists 1:47680ec5d783 35 // This works because both the default serial (used by printf) and the s instance
embeddedartists 1:47680ec5d783 36 // (used by s.printf) would use the same underlying UART code so setting the baudrate
embeddedartists 1:47680ec5d783 37 // in one affects the other.
embeddedartists 1:47680ec5d783 38 Serial s(USBTX, USBRX);
embeddedartists 1:47680ec5d783 39 s.baud(baudrate);
embeddedartists 1:47680ec5d783 40 }
embeddedartists 1:47680ec5d783 41
embeddedartists 0:0d5190d379d3 42 int main() {
embeddedartists 1:47680ec5d783 43 setupSerial(115200);
embeddedartists 1:47680ec5d783 44 printf("\n"
embeddedartists 1:47680ec5d783 45 "---\n"
embeddedartists 1:47680ec5d783 46 "Production Test Program: LPC4088 Experiment Base Board\n"
embeddedartists 1:47680ec5d783 47 "Build Date: " __DATE__ " at " __TIME__ "\n"
embeddedartists 1:47680ec5d783 48 "\n");
embeddedartists 0:0d5190d379d3 49
embeddedartists 2:2f4b7535ceb3 50 // run all tests
embeddedartists 2:2f4b7535ceb3 51 int failed = 0;
embeddedartists 0:0d5190d379d3 52
embeddedartists 2:2f4b7535ceb3 53 TestRGBLed rgb;
embeddedartists 2:2f4b7535ceb3 54 TestFileSystemMCI mcifs;
embeddedartists 2:2f4b7535ceb3 55 TestAcc acc;
embeddedartists 2:2f4b7535ceb3 56 // TestFileSystemSPI spifs;
embeddedartists 2:2f4b7535ceb3 57 TestTemperature temp;
embeddedartists 2:2f4b7535ceb3 58 TestTrimpot trim;
embeddedartists 2:2f4b7535ceb3 59 TestJoystick joy;
embeddedartists 2:2f4b7535ceb3 60 TestShiftreg shift;
embeddedartists 2:2f4b7535ceb3 61 TestDisplay display;
embeddedartists 3:7ef908e84ae1 62 TestAudio audio;
embeddedartists 3:7ef908e84ae1 63
embeddedartists 3:7ef908e84ae1 64 /* NOTE: Audio must be initialized AFTER the display as they both reference the same pins
embeddedartists 3:7ef908e84ae1 65 (P0_4, P0_5, P0_6, P0_7, P0_8, P0_9). However the display only uses those pins
embeddedartists 3:7ef908e84ae1 66 for 24-bit color depth and we only use 16-bit in this demo. */
embeddedartists 2:2f4b7535ceb3 67
embeddedartists 2:2f4b7535ceb3 68 //startup flash behaviour
embeddedartists 2:2f4b7535ceb3 69 rgb.showStartupPattern();
embeddedartists 2:2f4b7535ceb3 70
embeddedartists 2:2f4b7535ceb3 71 if (!mcifs.runTest()) {
embeddedartists 2:2f4b7535ceb3 72 failed++;
embeddedartists 2:2f4b7535ceb3 73 }
embeddedartists 2:2f4b7535ceb3 74
embeddedartists 2:2f4b7535ceb3 75 // if (!spifs.runTest()) {
embeddedartists 2:2f4b7535ceb3 76 // failed++;
embeddedartists 2:2f4b7535ceb3 77 // }
embeddedartists 0:0d5190d379d3 78
embeddedartists 2:2f4b7535ceb3 79 if (!acc.runTest()) {
embeddedartists 2:2f4b7535ceb3 80 failed++;
embeddedartists 2:2f4b7535ceb3 81 }
embeddedartists 2:2f4b7535ceb3 82
embeddedartists 2:2f4b7535ceb3 83 if (!temp.runTest()) {
embeddedartists 2:2f4b7535ceb3 84 failed++;
embeddedartists 2:2f4b7535ceb3 85 }
embeddedartists 2:2f4b7535ceb3 86
embeddedartists 2:2f4b7535ceb3 87 if (!trim.runTest()) {
embeddedartists 2:2f4b7535ceb3 88 failed++;
embeddedartists 2:2f4b7535ceb3 89 }
embeddedartists 0:0d5190d379d3 90
embeddedartists 2:2f4b7535ceb3 91 if (!joy.runTest()) {
embeddedartists 2:2f4b7535ceb3 92 failed++;
embeddedartists 2:2f4b7535ceb3 93 }
embeddedartists 2:2f4b7535ceb3 94
embeddedartists 2:2f4b7535ceb3 95 if (!rgb.runTest()) {
embeddedartists 2:2f4b7535ceb3 96 failed++;
embeddedartists 2:2f4b7535ceb3 97 }
embeddedartists 2:2f4b7535ceb3 98
embeddedartists 2:2f4b7535ceb3 99 if (!audio.runTest()) {
embeddedartists 2:2f4b7535ceb3 100 failed++;
embeddedartists 2:2f4b7535ceb3 101 }
embeddedartists 1:47680ec5d783 102
embeddedartists 2:2f4b7535ceb3 103 if (!display.runTest()) {
embeddedartists 2:2f4b7535ceb3 104 failed++;
embeddedartists 2:2f4b7535ceb3 105 }
embeddedartists 2:2f4b7535ceb3 106
embeddedartists 2:2f4b7535ceb3 107 if (failed == 0) {
embeddedartists 2:2f4b7535ceb3 108 printf("\n\n---\nTest PASSED\n\n");
embeddedartists 2:2f4b7535ceb3 109 printf("NOTE: The display as well as the shift register LEDs\n"
embeddedartists 2:2f4b7535ceb3 110 " must be manually checked as well\n\n");
embeddedartists 2:2f4b7535ceb3 111 } else {
embeddedartists 2:2f4b7535ceb3 112 printf("\n\n---\nTest FAILED (%d failed parts)\n\n", failed);
embeddedartists 2:2f4b7535ceb3 113 }
embeddedartists 2:2f4b7535ceb3 114 rgb.showStatus(failed == 0);
embeddedartists 2:2f4b7535ceb3 115 display.showStatus(failed == 0);
embeddedartists 0:0d5190d379d3 116
embeddedartists 0:0d5190d379d3 117 while(1) {
embeddedartists 2:2f4b7535ceb3 118 shift.runTest();
embeddedartists 0:0d5190d379d3 119 myled = 1;
embeddedartists 0:0d5190d379d3 120 wait(0.2);
embeddedartists 0:0d5190d379d3 121 myled = 0;
embeddedartists 0:0d5190d379d3 122 wait(0.2);
embeddedartists 0:0d5190d379d3 123 }
embeddedartists 0:0d5190d379d3 124 }