
This is the initial version of my 7-segment hardware test and software demo project. This project will also be the starting point for the EE- 2905 Week 10 lab practical.
Revision 109:86a37f0a397f, committed 2021-10-05
- Comitter:
- CSTritt
- Date:
- Tue Oct 05 05:00:06 2021 +0000
- Parent:
- 108:eee3167b25b4
- Child:
- 110:e80444a6fe3a
- Commit message:
- Correct error in pow function use.
Changed in this revision
--- a/CONTRIBUTING.md Tue Sep 21 02:00:55 2021 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -# Contributing to Mbed OS - -Mbed OS is an open-source, device software platform for the Internet of Things. Contributions are an important part of the platform, and our goal is to make it as simple as possible to become a contributor. - -To encourage productive collaboration, as well as robust, consistent and maintainable code, we have a set of guidelines for [contributing to Mbed OS](https://os.mbed.com/docs/mbed-os/latest/contributing/index.html).
--- a/README.md Tue Sep 21 02:00:55 2021 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,64 +0,0 @@ - -# Blinky Mbed OS example - -The example project is part of the [Arm Mbed OS Official Examples](https://os.mbed.com/code/) and is the [getting started example for Mbed OS](https://os.mbed.com/docs/mbed-os/v5.14/quick-start/index.html). It contains an application that repeatedly blinks an LED on supported [Mbed boards](https://os.mbed.com/platforms/). - -You can build the project with all supported [Mbed OS build tools](https://os.mbed.com/docs/mbed-os/latest/tools/index.html). However, this example project specifically refers to the command-line interface tool [Arm Mbed CLI](https://github.com/ARMmbed/mbed-cli#installing-mbed-cli). -(Note: To see a rendered example you can import into the Arm Online Compiler, please see our [import quick start](https://os.mbed.com/docs/mbed-os/latest/quick-start/online-with-the-online-compiler.html#importing-the-code).) - -1. [Install Mbed CLI](https://os.mbed.com/docs/mbed-os/latest/quick-start/offline-with-mbed-cli.html). - -1. Clone this repository on your system, and change the current directory to where the project was cloned: - - ```bash - $ git clone git@github.com:armmbed/mbed-os-example-blinky && cd mbed-os-example-blinky - ``` - - Alternatively, you can download the example project with Arm Mbed CLI using the `import` subcommand: - - ```bash - $ mbed import mbed-os-example-blinky && cd mbed-os-example-blinky - ``` - - -## Application functionality - -The `main()` function is the single thread in the application. It toggles the state of a digital output connected to an LED on the board. - -## Building and running - -1. Connect a USB cable between the USB port on the board and the host computer. -2. <a name="build_cmd"></a> Run the following command to build the example project and program the microcontroller flash memory: - ```bash - $ mbed compile -m <TARGET> -t <TOOLCHAIN> --flash - ``` -The binary is located at `./BUILD/<TARGET>/<TOOLCHAIN>/mbed-os-example-blinky.bin`. - -Alternatively, you can manually copy the binary to the board, which you mount on the host computer over USB. - -Depending on the target, you can build the example project with the `GCC_ARM`, `ARM` or `IAR` toolchain. After installing Arm Mbed CLI, run the command below to determine which toolchain supports your target: - -```bash -$ mbed compile -S -``` - -## Expected output -The LED on your target turns on and off every 500 milliseconds. - - -## Troubleshooting -If you have problems, you can review the [documentation](https://os.mbed.com/docs/latest/tutorials/debugging.html) for suggestions on what could be wrong and how to fix it. - -## Related Links - -* [Mbed OS Stats API](https://os.mbed.com/docs/latest/apis/mbed-statistics.html). -* [Mbed OS Configuration](https://os.mbed.com/docs/latest/reference/configuration.html). -* [Mbed OS Serial Communication](https://os.mbed.com/docs/latest/tutorials/serial-communication.html). -* [Mbed OS bare metal](https://os.mbed.com/docs/mbed-os/latest/reference/mbed-os-bare-metal.html). -* [Mbed boards](https://os.mbed.com/platforms/). - -### License and contributions - -The software is provided under Apache-2.0 license. Contributions to this project are accepted under the same license. Please see contributing.md for more info. - -This project contains code from other projects. The original license text is included in those source files. They must comply with our license guide.
--- a/main.cpp Tue Sep 21 02:00:55 2021 +0000 +++ b/main.cpp Tue Oct 05 05:00:06 2021 +0000 @@ -1,31 +1,45 @@ /* - Project: BinaryCount + Project: Binary Counter Improved (while loop) Version File: main.cpp - Displays 8 bit binary count on bar graph display. + Displays 8-bit binary count on bar graph display. This version uses a while + loop which provides a much better starting point for an Up/Down counter. + + Error in pow function use corrected in v. 1.0. + Note: I tried to use count for the loop counter but this resulted in an + ambiguous name error. + Written by: Dr. C. S. Tritt - Created: 9/20/21 (v. 1.2) + Created: 9/27/21 (v. 1.0) */ #include "mbed.h" -BusOut barGraph(D2, D3, D4, D5, D6, D7, D8, D9); // Create BusOut object. +DigitalIn uB(USER_BUTTON); // Button is active low (up = 1, down = 0). +const int bits = 4; // Number of bits to use. +const int c_max = pow(2, bits) - 1; // Maximum count. pow is type double. +const int sleepTime = 100; // Sleep time in milliseconds. +int myCount = 0; // Count to be displayed. Loop counter. +BusOut barGraph(D2, D3, D4, D5, D6, D7, D8, D9); // The display. int main() { // Test the wiring. - barGraph = 0; // All bars off (base 10). ThisThread::sleep_for(400); // For 0.4 seconds. barGraph = 0b01010101; // Odd bars on (binary). ThisThread::sleep_for(400); // Test even bars for 0.4 seconds. barGraph = 0b10101010; // Even bars on (binary). ThisThread::sleep_for(400); // Test even bars for 0.4 seconds. barGraph = 0xFF; // All bars on. Hex. - ThisThread::sleep_for(400); // For 0.4 seconds. - // Enter main loop. + ThisThread::sleep_for(400); // For 0.4 seconds. + + barGraph = myCount; // Initialize the display to myCount. + // Enter main loop. while(true) { - for (int i = 0; i < 256; i++) { // Add one to count. - barGraph = i; // Copy the count to the bargraph. - ThisThread::sleep_for(100); // Display the value for 0.1 seconds. + while (myCount >= 0 && myCount <= c_max) { + barGraph = myCount; // Set display to myCount. + ThisThread::sleep_for(sleepTime); // Display value for 0.1 seconds. + myCount++; } + myCount = 0; } } \ No newline at end of file