Classic Kill the Bit game for the application board. Press joystick down to kill off the leftmost LED, but if your timing is off more LEDs turn on. LEDs flash and speaker beeps when all LEDs are off.

Dependencies:   mbed

Committer:
4180_1
Date:
Tue Nov 26 03:10:05 2013 +0000
Revision:
0:ecbcef1609d9
ver1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
4180_1 0:ecbcef1609d9 1 #include "mbed.h"
4180_1 0:ecbcef1609d9 2 // Retro version of kill the bit
4180_1 0:ecbcef1609d9 3 // For application board
4180_1 0:ecbcef1609d9 4 // Joystick push kills LED bit on left, if it is on
4180_1 0:ecbcef1609d9 5 // If bit is not on, another is created
4180_1 0:ecbcef1609d9 6 // Goal is to kill off all of the bits
4180_1 0:ecbcef1609d9 7 // LEDs flash and speaker beeps on a win
4180_1 0:ecbcef1609d9 8
4180_1 0:ecbcef1609d9 9 DigitalOut myled1(LED1);
4180_1 0:ecbcef1609d9 10 DigitalOut myled2(LED2);
4180_1 0:ecbcef1609d9 11 DigitalOut myled3(LED3);
4180_1 0:ecbcef1609d9 12 DigitalOut myled4(LED4);
4180_1 0:ecbcef1609d9 13 DigitalIn pb(p14);
4180_1 0:ecbcef1609d9 14 PwmOut spkr(p26);
4180_1 0:ecbcef1609d9 15
4180_1 0:ecbcef1609d9 16 void display(int number)
4180_1 0:ecbcef1609d9 17 {
4180_1 0:ecbcef1609d9 18 myled1 = (number) & 0x01;
4180_1 0:ecbcef1609d9 19 myled2 = (number>>1) & 0x01;
4180_1 0:ecbcef1609d9 20 myled3 = (number>>2) & 0x01;
4180_1 0:ecbcef1609d9 21 myled4 = (number>>3) & 0x01;
4180_1 0:ecbcef1609d9 22 }
4180_1 0:ecbcef1609d9 23 int main()
4180_1 0:ecbcef1609d9 24 {
4180_1 0:ecbcef1609d9 25 unsigned int value = 0x12;
4180_1 0:ecbcef1609d9 26 spkr.period(1.0/2000.0);
4180_1 0:ecbcef1609d9 27 while(1) {
4180_1 0:ecbcef1609d9 28 value = value ^ pb;
4180_1 0:ecbcef1609d9 29 if (value == 0) {
4180_1 0:ecbcef1609d9 30 for (int i=0; i<5; ++i) {
4180_1 0:ecbcef1609d9 31 spkr = 0.5;
4180_1 0:ecbcef1609d9 32 display(0x0F);
4180_1 0:ecbcef1609d9 33 wait(.5);
4180_1 0:ecbcef1609d9 34 display(0);
4180_1 0:ecbcef1609d9 35 spkr = 0.0;
4180_1 0:ecbcef1609d9 36 wait(.25);
4180_1 0:ecbcef1609d9 37 }
4180_1 0:ecbcef1609d9 38 value = 0x012;
4180_1 0:ecbcef1609d9 39 }
4180_1 0:ecbcef1609d9 40 value = ((value & 0x01)<<3) | value >> 1;
4180_1 0:ecbcef1609d9 41 display(value);
4180_1 0:ecbcef1609d9 42 wait(.25);
4180_1 0:ecbcef1609d9 43 }
4180_1 0:ecbcef1609d9 44 }