Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@1:1286125a89ba, 2013-10-17 (annotated)
- 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?
User | Revision | Line number | New 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 | } |