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@0:471e3038d16a, 2017-02-27 (annotated)
- Committer:
- jderemer3
- Date:
- Mon Feb 27 01:45:59 2017 +0000
- Revision:
- 0:471e3038d16a
- Child:
- 1:554209140cec
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 | 0:471e3038d16a | 11 | RGBLed myRGBled(p23,p22,p21); //RGB PWM pins |
jderemer3 | 0:471e3038d16a | 12 | |
jderemer3 | 0:471e3038d16a | 13 | uLCD_4DGL uLCD(p9, p10, p11); |
jderemer3 | 0:471e3038d16a | 14 | |
jderemer3 | 0:471e3038d16a | 15 | Thread t1; |
jderemer3 | 0:471e3038d16a | 16 | Thread t2; |
jderemer3 | 0:471e3038d16a | 17 | Thread t3; |
jderemer3 | 0:471e3038d16a | 18 | Thread t4; |
jderemer3 | 0:471e3038d16a | 19 | |
jderemer3 | 0:471e3038d16a | 20 | Mutex lk_LCD; |
jderemer3 | 0:471e3038d16a | 21 | |
jderemer3 | 0:471e3038d16a | 22 | void rgb_t3() { |
jderemer3 | 0:471e3038d16a | 23 | while (true) { |
jderemer3 | 0:471e3038d16a | 24 | myRGBled.write(1.0,0.0,0.0); //red |
jderemer3 | 0:471e3038d16a | 25 | Thread::wait(2000); |
jderemer3 | 0:471e3038d16a | 26 | myRGBled.write(0.0,1.0,0.0); //green |
jderemer3 | 0:471e3038d16a | 27 | Thread::wait(2000); |
jderemer3 | 0:471e3038d16a | 28 | myRGBled.write(0.0,0.0,1.0); //blue |
jderemer3 | 0:471e3038d16a | 29 | Thread::wait(2000); |
jderemer3 | 0:471e3038d16a | 30 | } |
jderemer3 | 0:471e3038d16a | 31 | } |
jderemer3 | 0:471e3038d16a | 32 | |
jderemer3 | 0:471e3038d16a | 33 | void lcd_t1() { |
jderemer3 | 0:471e3038d16a | 34 | while (true) { |
jderemer3 | 0:471e3038d16a | 35 | for (int i = 0; i < 10; i++) |
jderemer3 | 0:471e3038d16a | 36 | { |
jderemer3 | 0:471e3038d16a | 37 | lk_LCD.lock(); |
jderemer3 | 0:471e3038d16a | 38 | uLCD.locate(2,2); |
jderemer3 | 0:471e3038d16a | 39 | uLCD.printf("\n Hello World! \nCount by one is %d!\n", i); |
jderemer3 | 0:471e3038d16a | 40 | lk_LCD.unlock(); |
jderemer3 | 0:471e3038d16a | 41 | Thread::wait(1000); |
jderemer3 | 0:471e3038d16a | 42 | } |
jderemer3 | 0:471e3038d16a | 43 | } |
jderemer3 | 0:471e3038d16a | 44 | } |
jderemer3 | 0:471e3038d16a | 45 | |
jderemer3 | 0:471e3038d16a | 46 | void lcd_t2() { |
jderemer3 | 0:471e3038d16a | 47 | while (true) { |
jderemer3 | 0:471e3038d16a | 48 | for (int j = 0; j < 20; j += 2) |
jderemer3 | 0:471e3038d16a | 49 | { |
jderemer3 | 0:471e3038d16a | 50 | lk_LCD.lock(); |
jderemer3 | 0:471e3038d16a | 51 | uLCD.locate(4,4); |
jderemer3 | 0:471e3038d16a | 52 | uLCD.printf("\n Hello World! \nCount by two is %d!\n", j); |
jderemer3 | 0:471e3038d16a | 53 | lk_LCD.unlock(); |
jderemer3 | 0:471e3038d16a | 54 | Thread::wait(2000); |
jderemer3 | 0:471e3038d16a | 55 | } |
jderemer3 | 0:471e3038d16a | 56 | } |
jderemer3 | 0:471e3038d16a | 57 | } |
jderemer3 | 0:471e3038d16a | 58 | |
jderemer3 | 0:471e3038d16a | 59 | int main() { |
jderemer3 | 0:471e3038d16a | 60 | t3.start(rgb_t3); |
jderemer3 | 0:471e3038d16a | 61 | t1.start(lcd_t1); |
jderemer3 | 0:471e3038d16a | 62 | t2.start(lcd_t2); |
jderemer3 | 0:471e3038d16a | 63 | while (true) { |
jderemer3 | 0:471e3038d16a | 64 | led1 = !led1; |
jderemer3 | 0:471e3038d16a | 65 | Thread::wait(500); |
jderemer3 | 0:471e3038d16a | 66 | } |
jderemer3 | 0:471e3038d16a | 67 | } |