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:
Thu Apr 27 16:08:02 2017 -0600
Revision:
12:a16d86fac131
Parent:
7:b16b9733d859
Child:
15:abda719ba6e6
use a pin pair struct to avoid confusing data and clock pins

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 12:a16d86fac131 23 DataClockPair chainablePins, rgbPins, qTouchPins, dispPins, ledBarPins;
tulanthoar 12:a16d86fac131 24 ledBarPins.dataPin = PE_9;
tulanthoar 12:a16d86fac131 25 ledBarPins.clockPin = PF_13;
tulanthoar 12:a16d86fac131 26 dispPins.dataPin = PE_13;
tulanthoar 12:a16d86fac131 27 dispPins.clockPin = PF_15;
tulanthoar 12:a16d86fac131 28 qTouchPins.dataPin = PB_9;
tulanthoar 12:a16d86fac131 29 qTouchPins.clockPin = PB_8;
tulanthoar 12:a16d86fac131 30 rgbPins.dataPin = PG_14;
tulanthoar 12:a16d86fac131 31 rgbPins.clockPin = PG_9;
tulanthoar 12:a16d86fac131 32 chainablePins.clockPin = PF_14;
tulanthoar 12:a16d86fac131 33 chainablePins.dataPin = PE_11;
tulanthoar 12:a16d86fac131 34 SeeedLedBar ledBar(ledBarPins);
tulanthoar 12:a16d86fac131 35 SeeedFourDigitDisp disp(dispPins);
tulanthoar 12:a16d86fac131 36 SeeedQTouch qTouch(qTouchPins);
tulanthoar 12:a16d86fac131 37 SeeedChainableLED led_chain(chainablePins);
tulanthoar 12:a16d86fac131 38 SeeedChainableLED rgb_led(rgbPins);
tulanthoar 3:c4427ce4d171 39
tulanthoar 7:b16b9733d859 40 Thread blinky(led_thread);
tulanthoar 3:c4427ce4d171 41
tulanthoar 6:14929f54ed6f 42 disp.set_digit(0,0);
tulanthoar 4:d540dccad60a 43 int knob_led_bar[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
tulanthoar 6:14929f54ed6f 44 ledBar.ten_on();
tulanthoar 6:14929f54ed6f 45 disp.clear_display();
tulanthoar 6:14929f54ed6f 46 led_chain.turn_on();
tulanthoar 12:a16d86fac131 47 led_chain.set_color_rgb(100,50,0);
tulanthoar 12:a16d86fac131 48 rgb_led.set_color_rgb(50,200,10);
tulanthoar 6:14929f54ed6f 49 while (1) {
tulanthoar 12:a16d86fac131 50 qTouch.key_touch(&pc);
tulanthoar 4:d540dccad60a 51 float led_frac = knob.read();
tulanthoar 4:d540dccad60a 52 int led_percent = floor(led_frac * 100);
tulanthoar 4:d540dccad60a 53 int tens = floor(led_frac * 10);
tulanthoar 4:d540dccad60a 54 int ones = led_percent % 10;
tulanthoar 4:d540dccad60a 55 ones = floor(ones * 10 / 8);
tulanthoar 4:d540dccad60a 56 if (ones > 8) ones = 8;
tulanthoar 6:14929f54ed6f 57 for (int i = 0; i < tens; ++i) knob_led_bar[i] = 0xff;
tulanthoar 7:b16b9733d859 58 knob_led_bar[tens] = ones * 0xf;
tulanthoar 7:b16b9733d859 59 for (int i = ++tens; i < 10; ++i) knob_led_bar[i] = 0x00;
tulanthoar 6:14929f54ed6f 60 ledBar.ten_set(knob_led_bar);
tulanthoar 7:b16b9733d859 61 disp.set_integer(led_percent);
tulanthoar 6:14929f54ed6f 62 int eightBitInput = led_frac * 255;
tulanthoar 6:14929f54ed6f 63 led_chain.set_color_rgb(eightBitInput, eightBitInput, eightBitInput);
tulanthoar 12:a16d86fac131 64 Thread::wait(2000);
tulanthoar 4:d540dccad60a 65 }
tulanthoar 4:d540dccad60a 66 }