Simple training demonstration to show the use of union and structure
Fork of OddExample2 by
main.cpp@11:085c63023906, 2013-11-26 (annotated)
- Committer:
- jf1452
- Date:
- Tue Nov 26 15:03:49 2013 +0000
- Revision:
- 11:085c63023906
- Parent:
- 10:6c0cd51df4df
Bit definitions using struct and union
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jf1452 | 1:d9da28105bef | 1 | /******************************************************************************* |
jf1452 | 9:0add51bbe65d | 2 | * This program demonstrates determines if a number is odd or even * |
jf1452 | 10:6c0cd51df4df | 3 | * Jon Fuge V1.0 26/11/2013 First issue of code * |
jf1452 | 1:d9da28105bef | 4 | *******************************************************************************/ |
jf1452 | 2:db81cad8cb64 | 5 | #include "mbed.h" |
jf1452 | 8:c0d351fc572f | 6 | #include "USBSerial.h" |
jf1452 | 10:6c0cd51df4df | 7 | |
jf1452 | 10:6c0cd51df4df | 8 | union byte // Define new type “BYTE” |
jf1452 | 10:6c0cd51df4df | 9 | { |
jf1452 | 10:6c0cd51df4df | 10 | char Byte; // Use this to map a byte |
jf1452 | 10:6c0cd51df4df | 11 | struct { |
jf1452 | 11:085c63023906 | 12 | char Bit0: 1; // map individual |
jf1452 | 11:085c63023906 | 13 | char Bit1: 1; // bits onto the |
jf1452 | 11:085c63023906 | 14 | char Bit2: 1; // mapped byte. |
jf1452 | 11:085c63023906 | 15 | char Bit3: 1; |
jf1452 | 11:085c63023906 | 16 | char Bit4: 1; |
jf1452 | 11:085c63023906 | 17 | char Bit5: 1; |
jf1452 | 11:085c63023906 | 18 | char Bit6: 1; |
jf1452 | 11:085c63023906 | 19 | char Bit7: 1; |
jf1452 | 10:6c0cd51df4df | 20 | }; |
jf1452 | 10:6c0cd51df4df | 21 | }; |
jf1452 | 10:6c0cd51df4df | 22 | |
jf1452 | 10:6c0cd51df4df | 23 | USBSerial serial; // Virtual serial port over USB. Use Teraterm as the interface |
jf1452 | 6:5f4be4b8db14 | 24 | |
dan | 0:7dec7e9ac085 | 25 | int main() { |
jf1452 | 10:6c0cd51df4df | 26 | byte cMyNumber; // Declare variable cMyNumber |
jf1452 | 10:6c0cd51df4df | 27 | cMyNumber.Byte = 53; // Set it to an odd number |
jf1452 | 8:c0d351fc572f | 28 | |
jf1452 | 8:c0d351fc572f | 29 | wait (10); // Wait 10 seconds to connect port |
jf1452 | 5:eb5c6ae5938b | 30 | |
jf1452 | 11:085c63023906 | 31 | if (cMyNumber.Bit0 == 1) |
jf1452 | 10:6c0cd51df4df | 32 | serial.printf("%i is odd\n\r", cMyNumber.Byte); |
jf1452 | 9:0add51bbe65d | 33 | else |
jf1452 | 10:6c0cd51df4df | 34 | serial.printf("%i is even\n\r", cMyNumber.Byte); |
jf1452 | 6:5f4be4b8db14 | 35 | |
jf1452 | 8:c0d351fc572f | 36 | for(;;) {} // Loop forever |
jf1452 | 3:0f80147842c2 | 37 | } |