fork of seeed studio 4-digit display for st nucleo board

Dependencies:   Data_Clock_Pair Seeed_Chainable_LED Seeed_Four_Digit_Disp Seeed_IR_Temp_Sensor Seeed_Led_Bar

Fork of Seeed_Grove_4_Digit_Display_Clock by Seeed

Committer:
tulanthoar
Date:
Fri Apr 21 13:47:19 2017 +0000
Revision:
8:09c844708255
Parent:
7:b16b9733d859
Child:
12:a16d86fac131
add fastio library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tulanthoar 4:d540dccad60a 1 #include <algorithm>
tulanthoar 4:d540dccad60a 2 #include <cmath>
tulanthoar 4:d540dccad60a 3 #include "mbed.h"
tulanthoar 7:b16b9733d859 4 #include "rtos.h"
tulanthoar 6:14929f54ed6f 5 #include "SeeedLedBar.h"
tulanthoar 6:14929f54ed6f 6 #include "SeeedFourDigitDisp.h"
tulanthoar 6:14929f54ed6f 7 #include "SeeedQTouch.h"
tulanthoar 6:14929f54ed6f 8 #include "SeeedChainableLED.h"
tulanthoar 4:d540dccad60a 9
tulanthoar 3:c4427ce4d171 10 Serial pc(SERIAL_TX, SERIAL_RX);
tulanthoar 7:b16b9733d859 11 DigitalOut led(PF_12);
tulanthoar 4:d540dccad60a 12 AnalogIn knob(PA_3);
tulanthoar 3:c4427ce4d171 13
tulanthoar 7:b16b9733d859 14 void led_thread(void const* args) {
tulanthoar 7:b16b9733d859 15 while(1) {
tulanthoar 7:b16b9733d859 16 led = !led;
tulanthoar 7:b16b9733d859 17 Thread::wait(1000);
tulanthoar 7:b16b9733d859 18 }
tulanthoar 7:b16b9733d859 19 }
tulanthoar 7:b16b9733d859 20
tulanthoar 6:14929f54ed6f 21 int main() {
tulanthoar 6:14929f54ed6f 22 pc.printf("\n\nstarting algorithm\n\n");
tulanthoar 6:14929f54ed6f 23 SeeedLedBar ledBar = SeeedLedBar(PE_9, PF_13);
tulanthoar 6:14929f54ed6f 24 SeeedFourDigitDisp disp = SeeedFourDigitDisp(PE_13, PF_15);
tulanthoar 6:14929f54ed6f 25 SeeedQTouch qTouch = SeeedQTouch(PB_9, PB_8);
tulanthoar 6:14929f54ed6f 26 SeeedChainableLED led_chain = SeeedChainableLED(PE_11, PF_14);
tulanthoar 3:c4427ce4d171 27
tulanthoar 7:b16b9733d859 28 Thread blinky(led_thread);
tulanthoar 3:c4427ce4d171 29
tulanthoar 6:14929f54ed6f 30 disp.set_digit(0,0);
tulanthoar 4:d540dccad60a 31 int knob_led_bar[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
tulanthoar 6:14929f54ed6f 32 ledBar.ten_on();
tulanthoar 6:14929f54ed6f 33 disp.clear_display();
tulanthoar 6:14929f54ed6f 34 led_chain.turn_on();
tulanthoar 6:14929f54ed6f 35 led_chain.set_color_rgb(100,200,100);
tulanthoar 6:14929f54ed6f 36 while (1) {
tulanthoar 4:d540dccad60a 37 float led_frac = knob.read();
tulanthoar 4:d540dccad60a 38 int led_percent = floor(led_frac * 100);
tulanthoar 4:d540dccad60a 39 int tens = floor(led_frac * 10);
tulanthoar 4:d540dccad60a 40 int ones = led_percent % 10;
tulanthoar 4:d540dccad60a 41 ones = floor(ones * 10 / 8);
tulanthoar 4:d540dccad60a 42 if (ones > 8) ones = 8;
tulanthoar 6:14929f54ed6f 43 for (int i = 0; i < tens; ++i) knob_led_bar[i] = 0xff;
tulanthoar 7:b16b9733d859 44 knob_led_bar[tens] = ones * 0xf;
tulanthoar 7:b16b9733d859 45 for (int i = ++tens; i < 10; ++i) knob_led_bar[i] = 0x00;
tulanthoar 6:14929f54ed6f 46 ledBar.ten_set(knob_led_bar);
tulanthoar 7:b16b9733d859 47 disp.set_integer(led_percent);
tulanthoar 6:14929f54ed6f 48 int eightBitInput = led_frac * 255;
tulanthoar 6:14929f54ed6f 49 led_chain.set_color_rgb(eightBitInput, eightBitInput, eightBitInput);
tulanthoar 7:b16b9733d859 50 Thread::wait(10);
tulanthoar 4:d540dccad60a 51 }
tulanthoar 4:d540dccad60a 52 }