Whack a Mole game! Features: - LCD graphics display - Touch pad input - Speaker effects through a class D audio amplifier\ - A high score page maintained by the SD card file system - Analog noise used to seed random numbers
Dependencies: 4DGL-uLCD-SE SDFileSystem mbed
Fork of MPR121_Demo by
Diff: main.cpp
- Revision:
- 2:d85c5ce4d397
- Parent:
- 1:89fd0d713ffc
- Child:
- 3:dbae62823ec8
--- a/main.cpp Mon Mar 14 03:28:28 2016 +0000 +++ b/main.cpp Mon Mar 14 03:34:58 2016 +0000 @@ -37,7 +37,7 @@ // Create the interrupt receiver object on pin 26 InterruptIn interrupt(p26); -Mutex POS_MUTTEX; +Mutex POS_MUTEX; // Setup the Serial to the PC for debugging Serial pc(USBTX, USBRX); @@ -67,12 +67,12 @@ int value=mpr121.read(0x00); value +=mpr121.read(0x01)<<8; // LED demo mod by J. Hamblen - POS_MUTEX.lock; + POS_MUTEX.lock(); if (value==hole1&&pos1==1) { score++; } - POS_MUTEX.lock; + POS_MUTEX.unlock(); pc.printf("MPR value: %x \r\n", value); /*if (value == 1) { @@ -195,14 +195,14 @@ switch(state) { case 0: - Mutex POS_MUTEX.lock; + POS_MUTEX.lock(); pos1=1; pos2=0; pos3=0; pos4=0; pos5=0; pos6=0; - Mutex POS_MUTEX.unlock; + POS_MUTEX.unlock(); pc.printf("%i should be 0 \n\r",state); lcd.filled_circle(col1, row1 , rmole, fill);// 1 lcd.filled_circle(col1, row2 , rmole, fill); @@ -213,14 +213,14 @@ lcd.filled_circle(col1, row1 , rmole, mole); break; case 1: - Mutex POS_MUTEX.lock; + POS_MUTEX.lock(); pos1=0; pos2=1; pos3=0; pos4=0; pos5=0; pos6=0; - Mutex POS_MUTEX.unlock; + POS_MUTEX.unlock(); pc.printf("%i should be 1 \n\r",state); lcd.filled_circle(col1, row1 , rmole, fill);// 2 lcd.filled_circle(col1, row2 , rmole, fill); @@ -231,14 +231,14 @@ lcd.filled_circle(col2, row1 , rmole, mole); break; case 2: - Mutex POS_MUTEX.lock; + POS_MUTEX.lock(); pos1=0; pos2=0; pos3=1; pos4=0; pos5=0; pos6=0; - Mutex POS_MUTEX.unlock; + POS_MUTEX.unlock(); pc.printf("%i should be 2 \n\r",state); lcd.filled_circle(col1, row1 , rmole, fill);// 3 lcd.filled_circle(col1, row2 , rmole, fill); @@ -249,14 +249,14 @@ lcd.filled_circle(col3, row1 , rmole, mole); break; case 3: - Mutex POS_MUTEX.lock; + POS_MUTEX.lock(); pos1=0; pos2=0; pos3=0; pos4=1; pos5=0; pos6=0; - Mutex POS_MUTEX.unlock; + POS_MUTEX.unlock(); pc.printf("%i should be 3 \n\r",state); lcd.filled_circle(col1, row1 , rmole, fill);// 4 lcd.filled_circle(col1, row2 , rmole, fill); @@ -267,14 +267,14 @@ lcd.filled_circle(col1, row2 , rmole, mole); break; case 4: - Mutex POS_MUTEX.lock; + POS_MUTEX.lock(); pos1=0; pos2=0; pos3=0; pos4=0; pos5=1; pos6=0; - Mutex POS_MUTEX.unlock; + POS_MUTEX.unlock(); pc.printf("%i should be 4 \n\r",state); lcd.filled_circle(col1, row1 , rmole, fill);// 5 lcd.filled_circle(col1, row2 , rmole, fill); @@ -285,14 +285,14 @@ lcd.filled_circle(col2, row2 , rmole, mole); break; case 5: - Mutex POS_MUTEX.lock; + POS_MUTEX.lock(); pos1=0; pos2=0; pos3=0; pos4=0; pos5=0; pos6=1; - Mutex POS_MUTEX.unlock; + POS_MUTEX.unlock(); pc.printf("%i should be 5 \n\r",state); lcd.filled_circle(col1, row1 , rmole, fill);// 6 @@ -304,14 +304,14 @@ lcd.filled_circle(col2, row2 , rmole, mole); break; case 6: - Mutex POS_MUTEX.lock; + POS_MUTEX.lock(); pos1=0; pos2=1; pos3=0; pos4=0; pos5=0; pos6=1; - Mutex POS_MUTEX.unlock; + POS_MUTEX.unlock(); pc.printf("%i should be 6 \n\r",state); lcd.filled_circle(col1, row1 , rmole, fill);// 2,6 lcd.filled_circle(col1, row2 , rmole, fill); @@ -323,14 +323,14 @@ lcd.filled_circle(col3, row2 , rmole, mole); break; case 7: - Mutex POS_MUTEX.lock; + POS_MUTEX.lock(); pos1=1; pos2=0; pos3=1; pos4=0; pos5=0; pos6=0; - Mutex POS_MUTEX.unlock; + POS_MUTEX.unlock(); pc.printf("%i should be 7 \n\r",state); lcd.filled_circle(col1, row1 , rmole, fill);// 1,3 lcd.filled_circle(col1, row2 , rmole, fill); @@ -342,14 +342,14 @@ lcd.filled_circle(col3, row1 , rmole, mole); break; case 8: - Mutex POS_MUTEX.lock; + POS_MUTEX.lock(); pos1=0; pos2=1; pos3=0; pos4=1; pos5=0; pos6=1; - Mutex POS_MUTEX.unlock; + POS_MUTEX.unlock(); pc.printf("%i should be 8 \n\r",state); lcd.filled_circle(col1, row1 , rmole, fill);// 2,4,6 @@ -363,14 +363,14 @@ lcd.filled_circle(col3, row2 , rmole, mole); break; case 9: - Mutex POS_MUTEX.lock; + POS_MUTEX.lock(); pos1=0; pos2=0; pos3=1; pos4=1; pos5=0; pos6=1; - Mutex POS_MUTEX.unlock; + POS_MUTEX.unlock(); pc.printf("%i should be 9 \n\r",state); lcd.filled_circle(col1, row1 , rmole, fill);// 3,4,6 lcd.filled_circle(col1, row2 , rmole, fill); @@ -383,14 +383,14 @@ lcd.filled_circle(col3, row2 , rmole, mole); break; case 10: - Mutex POS_MUTEX.lock; + POS_MUTEX.lock(); pos1=1; pos2=0; pos3=0; pos4=0; pos5=0; pos6=1; - Mutex POS_MUTEX.unlock; + POS_MUTEX.unlock(); pc.printf("%i should be 10 \n\r",state); lcd.filled_circle(col1, row1 , rmole, fill);// 1,6 lcd.filled_circle(col1, row2 , rmole, fill); @@ -402,14 +402,14 @@ lcd.filled_circle(col3, row2 , rmole, mole); break; case 11: - Mutex POS_MUTEX.lock; + POS_MUTEX.lock(); pos1=0; pos2=1; pos3=1; pos4=0; pos5=1; pos6=1; - Mutex POS_MUTEX.unlock; + POS_MUTEX.unlock(); pc.printf("%i should be 11 \n\r",state); lcd.filled_circle(col1, row1 , rmole, fill);// 2,3,5,6 lcd.filled_circle(col1, row2 , rmole, fill); @@ -423,14 +423,14 @@ lcd.filled_circle(col3, row2 , rmole, mole); break; case 12: - Mutex POS_MUTEX.lock; + POS_MUTEX.lock(); pos1=0; pos2=0; pos3=1; pos4=0; pos5=1; pos6=0; - Mutex POS_MUTEX.unlock; + POS_MUTEX.unlock(); pc.printf("%i should be 12 \n\r",state); lcd.filled_circle(col1, row1 , rmole, fill);// 3,5 lcd.filled_circle(col1, row2 , rmole, fill); @@ -442,14 +442,14 @@ lcd.filled_circle(col2, row2 , rmole, mole); break; case 13: - Mutex POS_MUTEX.lock; + POS_MUTEX.lock(); pos1=1; pos2=0; pos3=0; pos4=1; pos5=1; pos6=0; - Mutex POS_MUTEX.unlock; + POS_MUTEX.unlock(); pc.printf("%i should be 13 \n\r",state); lcd.filled_circle(col1, row1 , rmole, fill);// 1,4,5 lcd.filled_circle(col1, row2 , rmole, fill); @@ -462,14 +462,14 @@ lcd.filled_circle(col2, row2 , rmole, mole); break; case 14: - Mutex POS_MUTEX.lock; + POS_MUTEX.lock(); pos1=0; pos2=1; pos3=0; pos4=0; pos5=1; pos6=0; - Mutex POS_MUTEX.unlock; + POS_MUTEX.unlock(); pc.printf("%i should be 14 \n\r",state); lcd.filled_circle(col1, row1 , rmole, fill);// 2,5