David Geenen
/
LED20_91111
mbed 4-LED user defined Lightshow
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 00003 // User defined mbed LED Lightshow 00004 // Working Code 27 Nov 2010 00005 00006 // Data entries = LED instance 00007 // Data = 91111 = all 4 LEDs on 00008 // Data = 90000 = all 4 LEDs off 00009 // Data = 90110 = LEDs 1 and 4 off, 2 and 3 on 00010 // Data value 9 prevents processing data as octal values 00011 // Data value 9 may be future LED duration timing code (values 1-9) 00012 00013 DigitalOut myleda(LED1); 00014 DigitalOut myledb(LED2); 00015 DigitalOut myledc(LED3); 00016 DigitalOut myledd(LED4); 00017 00018 int nDisplayTemp; 00019 int i; 00020 00021 // Set number in array ( nDisplay[x] ) = number of data entries 00022 // Set loop value below to equal number of data entries in array 00023 00024 int nDisplay[100]={ 00025 91000,90100,90010,90001,91000,90100,90010,90001,91000,90100, // 1: 0 - 09 light display 00026 90010,90001,91000,90100,90010,90001,90000,91111,90110,91001, // 2: 10 - 19 light display1111,90111,91011,91101,91110,91111,90110,91101,91011,91111}; //10: 90 - 99 light display 00027 90110,91111,90000,90001,90010,90100,91000,90001,90010,90100, // 3: 20 - 29 light display 00028 91000,90001,90010,90100,91000,90001,90010,90100,91000,90000, // 4: 30 - 39 light display 00029 91111,90110,91001,90110,91001,90110,91111,90000,91000,91100, // 5: 40 - 49 light display 00030 91110,91111,90111,90011,90001,90000,90001,90011,90111,91111, // 6: 50 - 59 light display 00031 91110,91100,91000,90000,91111,91001,90110,91001,91111,91111, // 7: 60 - 69 light display 00032 90111,90011,90001,91000,91100,91110,91111,90000,91110,91101, // 8: 70 - 79 light display 00033 91011,90111,91110,91100,91000,90000,91111,91000,91100,91110, // 9: 80 - 89 light display 00034 91111,90111,91011,91101,91110,91111,90110,91101,91011,91111}; //10: 90 - 99 light display 00035 int main() { 00036 while (1){ 00037 00038 // Set loop value to equal number of data entries in array 00039 00040 for (int i=0; i<100; i++) { 00041 if (nDisplay[i]>=91000) // light no 1 : on or off 00042 { myleda = 1; 00043 nDisplayTemp = nDisplay[i] - 1000; 00044 } 00045 else 00046 { myleda = 0; 00047 nDisplayTemp = nDisplay[i]; 00048 } 00049 if (nDisplayTemp >= 90100) // light no 2 : on or off 00050 { myledb = 1; 00051 nDisplayTemp = nDisplayTemp - 100; 00052 } 00053 else 00054 { myledb = 0; 00055 } 00056 if (nDisplayTemp >= 90010) // light no 3 : on or off 00057 { myledc = 1; 00058 nDisplayTemp = nDisplayTemp - 10; 00059 } 00060 else 00061 { myledc = 0; 00062 } 00063 if (nDisplayTemp >= 90001) // light no 4 : on or off 00064 { myledd = 1; 00065 } 00066 else 00067 { myledd = 0; 00068 } 00069 00070 wait(0.2); 00071 myleda = myledb = myledc = myledd = 0; // 0.2 sec : all lights off 00072 wait(0.2); 00073 } 00074 } 00075 }
Generated on Sat Jul 16 2022 07:57:48 by 1.7.2