Max Amani / Mbed 2 deprecated Bootcamp-HelloWorld_LED_Count

Dependencies:   mbed

Committer:
amx_192
Date:
Thu Oct 17 02:07:19 2013 +0000
Revision:
1:1286125a89ba
Parent:
0:2a6f2b9e790d
This is the HW#1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
amx_192 1:1286125a89ba 1 /* Program: Bootcamp-HelloWorld_LED_Count.cpp
amx_192 1:1286125a89ba 2 * Author: Max Amani
amx_192 1:1286125a89ba 3 * Description:This program uses the LCP1768 Microcontroller 4 LEDs to count up from 0 to 15 and reset to 0
amx_192 1:1286125a89ba 4 * When a pin connected to the LED is high, the LED lights up
amx_192 1:1286125a89ba 5 */
amx_192 0:2a6f2b9e790d 6 #include "mbed.h"
amx_192 0:2a6f2b9e790d 7
amx_192 1:1286125a89ba 8 #define MAX_COUNT 16
amx_192 1:1286125a89ba 9
amx_192 1:1286125a89ba 10 BusOut busLeds (LED4,LED3,LED2,LED1);
amx_192 1:1286125a89ba 11
amx_192 1:1286125a89ba 12 //PROTOTYPES
amx_192 1:1286125a89ba 13 void delay(void);
amx_192 1:1286125a89ba 14 void displayCount(const unsigned char hex);
amx_192 1:1286125a89ba 15
amx_192 0:2a6f2b9e790d 16 int main() {
amx_192 1:1286125a89ba 17
amx_192 1:1286125a89ba 18 int i;
amx_192 0:2a6f2b9e790d 19 while(1) {
amx_192 1:1286125a89ba 20
amx_192 1:1286125a89ba 21 for ( i = 0 ; i < MAX_COUNT ; i++ )
amx_192 1:1286125a89ba 22 {
amx_192 1:1286125a89ba 23
amx_192 1:1286125a89ba 24 switch (i){
amx_192 1:1286125a89ba 25 case 0: busLeds = ~0xF;
amx_192 1:1286125a89ba 26 displayCount(0x0);
amx_192 1:1286125a89ba 27 delay();
amx_192 1:1286125a89ba 28 break;
amx_192 1:1286125a89ba 29 case 1: busLeds = 0x1;
amx_192 1:1286125a89ba 30 displayCount(0x1);
amx_192 1:1286125a89ba 31 delay();
amx_192 1:1286125a89ba 32 break;
amx_192 1:1286125a89ba 33 case 2: busLeds = 0x2;
amx_192 1:1286125a89ba 34 displayCount(0x2);
amx_192 1:1286125a89ba 35 delay();
amx_192 1:1286125a89ba 36 break;
amx_192 1:1286125a89ba 37 case 3: busLeds = 0x3;
amx_192 1:1286125a89ba 38 displayCount(0x3);
amx_192 1:1286125a89ba 39 delay();
amx_192 1:1286125a89ba 40 break;
amx_192 1:1286125a89ba 41 case 4: busLeds = 0x4;
amx_192 1:1286125a89ba 42 displayCount(0x4);
amx_192 1:1286125a89ba 43 delay();
amx_192 1:1286125a89ba 44 break;
amx_192 1:1286125a89ba 45 case 5: busLeds = 0x5;
amx_192 1:1286125a89ba 46 displayCount(0x5);
amx_192 1:1286125a89ba 47 delay();
amx_192 1:1286125a89ba 48 break;
amx_192 1:1286125a89ba 49 case 6: busLeds = 0x6;
amx_192 1:1286125a89ba 50 displayCount(0x6);
amx_192 1:1286125a89ba 51 delay();
amx_192 1:1286125a89ba 52 break;
amx_192 1:1286125a89ba 53 case 7: busLeds = 0x7;
amx_192 1:1286125a89ba 54 displayCount(0x7);
amx_192 1:1286125a89ba 55 delay();
amx_192 1:1286125a89ba 56 break;
amx_192 1:1286125a89ba 57 case 8: busLeds = 0x8;
amx_192 1:1286125a89ba 58 displayCount(0x8);
amx_192 1:1286125a89ba 59 delay();
amx_192 1:1286125a89ba 60 break;
amx_192 1:1286125a89ba 61 case 9: busLeds = 0x9;
amx_192 1:1286125a89ba 62 displayCount(0x9);
amx_192 1:1286125a89ba 63 delay();
amx_192 1:1286125a89ba 64 break;
amx_192 1:1286125a89ba 65 case 10: busLeds = 0xA;
amx_192 1:1286125a89ba 66 displayCount(0xA);
amx_192 1:1286125a89ba 67 delay();
amx_192 1:1286125a89ba 68 break;
amx_192 1:1286125a89ba 69 case 11: busLeds = 0xB;
amx_192 1:1286125a89ba 70 displayCount(0xB);
amx_192 1:1286125a89ba 71 delay();
amx_192 1:1286125a89ba 72 break;
amx_192 1:1286125a89ba 73 case 12: busLeds = 0xC;
amx_192 1:1286125a89ba 74 displayCount(0xC);
amx_192 1:1286125a89ba 75 delay();
amx_192 1:1286125a89ba 76 break;
amx_192 1:1286125a89ba 77 case 13: busLeds = 0xD;
amx_192 1:1286125a89ba 78 displayCount(0xD);
amx_192 1:1286125a89ba 79 delay();
amx_192 1:1286125a89ba 80 break;
amx_192 1:1286125a89ba 81 case 14: busLeds = 0xE;
amx_192 1:1286125a89ba 82 displayCount(0xE);
amx_192 1:1286125a89ba 83 delay();
amx_192 1:1286125a89ba 84 break;
amx_192 1:1286125a89ba 85 case 15: busLeds = 0xF;
amx_192 1:1286125a89ba 86 displayCount(0xF);
amx_192 1:1286125a89ba 87 delay();
amx_192 1:1286125a89ba 88 break;
amx_192 1:1286125a89ba 89 }
amx_192 1:1286125a89ba 90 }
amx_192 1:1286125a89ba 91 }
amx_192 1:1286125a89ba 92 }
amx_192 1:1286125a89ba 93 // delay function
amx_192 1:1286125a89ba 94 void delay(){
amx_192 1:1286125a89ba 95 wait(1.0);
amx_192 1:1286125a89ba 96 }
amx_192 1:1286125a89ba 97 //Function that convert a hex number into a binary and append 'b' at the end
amx_192 1:1286125a89ba 98 void displayCount(const unsigned char hex){
amx_192 1:1286125a89ba 99
amx_192 1:1286125a89ba 100 unsigned char i , c = hex; // hex value to convert in binary
amx_192 1:1286125a89ba 101 unsigned char Mask = 1 << 3; // Mask value is set to 8 = 2^(n-1) = 1<< 3 .
amx_192 1:1286125a89ba 102 // Number of bits in the binary value
amx_192 1:1286125a89ba 103 for ( i = 1 ; i <= 4 ; i++ )
amx_192 1:1286125a89ba 104 {
amx_192 1:1286125a89ba 105 putchar(c & Mask ? '1' : '0');
amx_192 1:1286125a89ba 106 c <<= 1;
amx_192 0:2a6f2b9e790d 107 }
amx_192 1:1286125a89ba 108 putchar('b');
amx_192 1:1286125a89ba 109 putchar('\n');
amx_192 1:1286125a89ba 110 }