Simple training demonstration to show the use of union and structure

Dependencies:   USBDevice mbed

Fork of OddExample2 by Jon Fuge

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?

UserRevisionLine numberNew 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 }