Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp
00001 #include "main.h" 00002 00003 //PortOut portD(PortD, IOS); 00004 Timer timer; 00005 00006 DigitalInOut gnds[] = { 00007 DigitalInOut(A1), 00008 DigitalInOut(D2), 00009 DigitalInOut(D3), 00010 DigitalInOut(D4), 00011 DigitalInOut(D12), 00012 DigitalInOut(D11), 00013 DigitalInOut(D10), 00014 DigitalInOut(D9) 00015 }; 00016 DigitalInOut vccs[] = { 00017 DigitalInOut(D5), 00018 DigitalInOut(D6), 00019 DigitalInOut(D7), 00020 DigitalInOut(D8), 00021 DigitalInOut(A0), 00022 DigitalInOut(D15), 00023 DigitalInOut(D14), 00024 DigitalInOut(D13) 00025 }; 00026 00027 int pacman[][8] = { 00028 { 00029 binary< 100111100 >::value, 00030 binary< 101111110 >::value, 00031 binary< 111011111 >::value, 00032 binary< 111111111 >::value, 00033 binary< 111111111 >::value, 00034 binary< 111111111 >::value, 00035 binary< 101111110 >::value, 00036 binary< 100111100 >::value }, 00037 { 00038 binary< 100111100 >::value, 00039 binary< 101111110 >::value, 00040 binary< 111011111 >::value, 00041 binary< 111111111 >::value, 00042 binary< 111111110 >::value, 00043 binary< 111111111 >::value, 00044 binary< 101111110 >::value, 00045 binary< 100111100 >::value }, 00046 { 00047 binary< 100111100 >::value, 00048 binary< 101111110 >::value, 00049 binary< 111011111 >::value, 00050 binary< 111111111 >::value, 00051 binary< 111111100 >::value, 00052 binary< 111111111 >::value, 00053 binary< 101111110 >::value, 00054 binary< 100111100 >::value }, 00055 { 00056 binary< 100111100 >::value, 00057 binary< 101111110 >::value, 00058 binary< 111011111 >::value, 00059 binary< 111111111 >::value, 00060 binary< 111111000 >::value, 00061 binary< 111111111 >::value, 00062 binary< 101111110 >::value, 00063 binary< 100111100 >::value }, 00064 { 00065 binary< 100111100 >::value, 00066 binary< 101111110 >::value, 00067 binary< 111011111 >::value, 00068 binary< 111111111 >::value, 00069 binary< 111110000 >::value, 00070 binary< 111111111 >::value, 00071 binary< 101111110 >::value, 00072 binary< 100111100 >::value }, 00073 }; 00074 00075 /* 00076 00111100 00077 01111110 00078 11011111 00079 11111111 00080 11110000 00081 11111111 00082 01111110 00083 00111100 00084 */ 00085 00086 // (00011000 >> (7-v) & 00000001) 00087 00088 int main() { 00089 for ( int i = 0; i < 8; i++ ) { 00090 vccs[i].input(); 00091 gnds[i].input(); 00092 } 00093 int lv = 0, lg = 0; 00094 int s = 0, num = 0; 00095 timer.start(); 00096 while( 1 ) { 00097 for ( int v = 0; v < 8; v++ ) { 00098 if ( v > num ) break; 00099 if ( num < 8 ) 00100 wait( 0.0003f ); 00101 for ( int g = 0; g < 8; g++ ) { 00102 vccs[lv].input(); 00103 gnds[lg].input(); 00104 if ( (pacman[s][g] >> (7-v)) & 1 ) { 00105 vccs[v].output(); 00106 gnds[g].output(); 00107 vccs[v].write(1); 00108 gnds[g].write(0); 00109 } 00110 lv = v; 00111 lg = g; 00112 wait( 0.0003f ); 00113 } 00114 } 00115 if ( num < 8 ) 00116 num++; 00117 if ( timer.read() <= 0.25f ) 00118 s = 0; 00119 else if ( timer.read() <= 0.5f ) 00120 s = 1; 00121 else if ( timer.read() <= 0.75f ) 00122 s = 2; 00123 else if ( timer.read() <= 1.0f ) 00124 s = 3; 00125 else if ( timer.read() <= 4.5f ) 00126 s = 4; 00127 else if ( timer.read() <= 4.75f ) 00128 s = 3; 00129 else if ( timer.read() <= 5.0f ) 00130 s = 2; 00131 else if ( timer.read() <= 5.25f ) 00132 s = 1; 00133 else if ( timer.read() <= 6.0f ) 00134 s = 0; 00135 else 00136 timer.reset(); 00137 } 00138 } 00139
Generated on Sat Aug 6 2022 05:49:11 by
1.7.2