Kill the bit game for Real Time Assignment
Dependencies: mbed C12832 mbed-rtos
main.cpp@0:ecbcef1609d9, 2013-11-26 (annotated)
- Committer:
- 4180_1
- Date:
- Tue Nov 26 03:10:05 2013 +0000
- Revision:
- 0:ecbcef1609d9
- Child:
- 1:617a3879630b
ver1.0
Who changed what in which revision?
User | Revision | Line number | New 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 | } |