![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
RoboCup Base Station
Dependencies: mbed mbed-rtos Wireless Drivers
Diff: main.cpp
- Revision:
- 0:a606cf2249ad
- Child:
- 1:e5373c63f642
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Dec 31 02:45:31 2014 +0000 @@ -0,0 +1,50 @@ +// Cycle through a 7-segment LCD display + +#include "mbed.h" + +// Outputs used as input values to the 7-segment binary decoder +DigitalOut signal[4] = {p17, p18, p19, p20}; + +// For latching the 7 segment led's output +DigitalOut latch(p16); + +// To show that the mbed is running +DigitalOut status_led(LED1); + +// Function for writing a number to the 7-segment display +void writeSegment(uint8_t val) +{ + // write out the new value + for (int i=0; i<4; i++) + signal[i] = ((1<<i) & (val)) & 0x0F; + + // latch the value + for (int i=0; i<2; i++) + latch = !latch; +} + +int main() +{ + latch = 0; // initialize the latch pin for the CD4511B decoder + status_led = 0; // initialize & turn off led for startup operations + + uint8_t channel; // limit to 4 bits (0x00 to 0x0F) + channel = 8; // light up all of the 7-segment's segments at startup - allows for the user to detect if there's a problem + writeSegment(channel); + wait(1.0); // wait 2 seconds to ensure user sees the startup operation + + channel = 0; // start back over at 0 + + while(1) { + // send numerical value to 7-segment & hold for a while + writeSegment(channel++); + wait(0.3); + status_led = !status_led; + + // wait again just so that the status led and segment are out of sync + wait(0.2); + + // reset value if too high + channel = channel > 9 ? 0 : channel; + } +} \ No newline at end of file