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.
Dependencies: 4DGL-uLCD-SE mbed-rtos mbed
main.cpp@1:554209140cec, 2017-02-27 (annotated)
- Committer:
- jderemer3
- Date:
- Mon Feb 27 04:00:50 2017 +0000
- Revision:
- 1:554209140cec
- Parent:
- 0:471e3038d16a
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jderemer3 | 0:471e3038d16a | 1 | #include "mbed.h" |
jderemer3 | 0:471e3038d16a | 2 | #include "rtos.h" |
jderemer3 | 0:471e3038d16a | 3 | #include "RGBLed.h" |
jderemer3 | 0:471e3038d16a | 4 | #include "uLCD_4DGL.h" |
jderemer3 | 0:471e3038d16a | 5 | |
jderemer3 | 0:471e3038d16a | 6 | DigitalOut led1(LED1); |
jderemer3 | 0:471e3038d16a | 7 | DigitalOut led2(LED2); |
jderemer3 | 0:471e3038d16a | 8 | DigitalOut led3(LED3); |
jderemer3 | 0:471e3038d16a | 9 | DigitalOut led4(LED4); |
jderemer3 | 0:471e3038d16a | 10 | |
jderemer3 | 1:554209140cec | 11 | // RGBLed myRGBled(p21,p22,p23); //RGB PWM pins |
jderemer3 | 1:554209140cec | 12 | |
jderemer3 | 1:554209140cec | 13 | Serial bluemod(p28,p27); |
jderemer3 | 1:554209140cec | 14 | PwmOut red(p21); |
jderemer3 | 1:554209140cec | 15 | PwmOut green(p22); |
jderemer3 | 1:554209140cec | 16 | PwmOut blue(p23); |
jderemer3 | 0:471e3038d16a | 17 | |
jderemer3 | 0:471e3038d16a | 18 | uLCD_4DGL uLCD(p9, p10, p11); |
jderemer3 | 0:471e3038d16a | 19 | |
jderemer3 | 0:471e3038d16a | 20 | Thread t1; |
jderemer3 | 0:471e3038d16a | 21 | Thread t2; |
jderemer3 | 0:471e3038d16a | 22 | Thread t3; |
jderemer3 | 0:471e3038d16a | 23 | Thread t4; |
jderemer3 | 0:471e3038d16a | 24 | |
jderemer3 | 0:471e3038d16a | 25 | Mutex lk_LCD; |
jderemer3 | 0:471e3038d16a | 26 | |
jderemer3 | 0:471e3038d16a | 27 | void rgb_t3() { |
jderemer3 | 1:554209140cec | 28 | |
jderemer3 | 0:471e3038d16a | 29 | while (true) { |
jderemer3 | 1:554209140cec | 30 | |
jderemer3 | 0:471e3038d16a | 31 | } |
jderemer3 | 0:471e3038d16a | 32 | } |
jderemer3 | 0:471e3038d16a | 33 | |
jderemer3 | 0:471e3038d16a | 34 | void lcd_t1() { |
jderemer3 | 0:471e3038d16a | 35 | while (true) { |
jderemer3 | 0:471e3038d16a | 36 | for (int i = 0; i < 10; i++) |
jderemer3 | 0:471e3038d16a | 37 | { |
jderemer3 | 0:471e3038d16a | 38 | lk_LCD.lock(); |
jderemer3 | 0:471e3038d16a | 39 | uLCD.locate(2,2); |
jderemer3 | 0:471e3038d16a | 40 | uLCD.printf("\n Hello World! \nCount by one is %d!\n", i); |
jderemer3 | 0:471e3038d16a | 41 | lk_LCD.unlock(); |
jderemer3 | 0:471e3038d16a | 42 | Thread::wait(1000); |
jderemer3 | 0:471e3038d16a | 43 | } |
jderemer3 | 0:471e3038d16a | 44 | } |
jderemer3 | 0:471e3038d16a | 45 | } |
jderemer3 | 0:471e3038d16a | 46 | |
jderemer3 | 0:471e3038d16a | 47 | void lcd_t2() { |
jderemer3 | 0:471e3038d16a | 48 | while (true) { |
jderemer3 | 0:471e3038d16a | 49 | for (int j = 0; j < 20; j += 2) |
jderemer3 | 0:471e3038d16a | 50 | { |
jderemer3 | 0:471e3038d16a | 51 | lk_LCD.lock(); |
jderemer3 | 0:471e3038d16a | 52 | uLCD.locate(4,4); |
jderemer3 | 0:471e3038d16a | 53 | uLCD.printf("\n Hello World! \nCount by two is %d!\n", j); |
jderemer3 | 0:471e3038d16a | 54 | lk_LCD.unlock(); |
jderemer3 | 0:471e3038d16a | 55 | Thread::wait(2000); |
jderemer3 | 0:471e3038d16a | 56 | } |
jderemer3 | 0:471e3038d16a | 57 | } |
jderemer3 | 0:471e3038d16a | 58 | } |
jderemer3 | 0:471e3038d16a | 59 | |
jderemer3 | 1:554209140cec | 60 | |
jderemer3 | 1:554209140cec | 61 | |
jderemer3 | 0:471e3038d16a | 62 | int main() { |
jderemer3 | 1:554209140cec | 63 | // myRGBled.write(0.0, 0.0, 0.0); |
jderemer3 | 1:554209140cec | 64 | char bred=0; |
jderemer3 | 1:554209140cec | 65 | char bgreen=0; |
jderemer3 | 1:554209140cec | 66 | char bblue=0; |
jderemer3 | 1:554209140cec | 67 | red = green = blue = 0; |
jderemer3 | 1:554209140cec | 68 | |
jderemer3 | 0:471e3038d16a | 69 | t3.start(rgb_t3); |
jderemer3 | 0:471e3038d16a | 70 | t1.start(lcd_t1); |
jderemer3 | 0:471e3038d16a | 71 | t2.start(lcd_t2); |
jderemer3 | 1:554209140cec | 72 | |
jderemer3 | 0:471e3038d16a | 73 | while (true) { |
jderemer3 | 1:554209140cec | 74 | if (bluemod.getc()=='!') { |
jderemer3 | 1:554209140cec | 75 | if (bluemod.getc()=='C') { //color data packet |
jderemer3 | 1:554209140cec | 76 | bred = bluemod.getc(); // RGB color values |
jderemer3 | 1:554209140cec | 77 | bgreen = bluemod.getc(); |
jderemer3 | 1:554209140cec | 78 | bblue = bluemod.getc(); |
jderemer3 | 1:554209140cec | 79 | if (bluemod.getc()==char(~('!' + 'C' + bred + bgreen + bblue))) { //checksum OK? |
jderemer3 | 1:554209140cec | 80 | red = bred/255.0; //send new color to RGB LED PWM outputs |
jderemer3 | 1:554209140cec | 81 | green = bgreen/255.0; |
jderemer3 | 1:554209140cec | 82 | blue = bblue/255.0; |
jderemer3 | 1:554209140cec | 83 | } |
jderemer3 | 1:554209140cec | 84 | } |
jderemer3 | 1:554209140cec | 85 | } |
jderemer3 | 0:471e3038d16a | 86 | led1 = !led1; |
jderemer3 | 0:471e3038d16a | 87 | Thread::wait(500); |
jderemer3 | 0:471e3038d16a | 88 | } |
jderemer3 | 0:471e3038d16a | 89 | } |