IT Tralee lab experiments
Dependencies: mbed mbed-rtos C12832_lcd LCD_fonts
Revision 4:6c9ce3b2350c, committed 2020-08-06
- Comitter:
- bmol
- Date:
- Thu Aug 06 17:38:01 2020 +0000
- Parent:
- 3:3ec443c0842a
- Commit message:
- IT Tralee
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Wed Dec 05 08:06:20 2012 +0000 +++ b/main.cpp Thu Aug 06 17:38:01 2020 +0000 @@ -10,6 +10,11 @@ #include "stdio.h" #include "C12832_lcd.h" +// Declarations added from app-board-joystick program +BusIn joy(p15,p12,p13,p16); +DigitalIn fire(p14); +BusOut leds(LED1,LED2,LED3,LED4); + // LCD object C12832_LCD LCD; @@ -17,6 +22,8 @@ AnalogIn Pot2(p20); + + // mutex to make the lcd lib thread save Mutex lcd_mutex; @@ -66,13 +73,13 @@ while(true) { // thread loop v = Pot1.read_u16(); // get value of pot 1 lcd_mutex.lock(); - for (i=90; i<127; i++) { - s = 8 * sin((long double)(i+k) /5); // pixel to print + for (i=90; i<127; i++) { + s = 8 * sin((long double)(i+k) /5); // pixel to print a = 8 * sin((long double)(i+k-1) /5); // old pixel to erase - LCD.pixel(i,9 + (int)a ,0); // erase pixel - LCD.pixel(i,9 + (int)s ,1); // print pixel + LCD.pixel(i,9 + (int)a,0); // erase pixel + LCD.pixel(i,9 + (int)s,1); // print pixel } - LCD.copy_to_lcd(); // LCD.pixel do not update the lcd + LCD.copy_to_lcd(); // LCD.pixel do not update the lcd lcd_mutex.unlock(); k++; Thread::wait(v/100); // value of pot1 / 100 @@ -85,26 +92,44 @@ { int k; while(true) { // thread loop - k = Pot2.read_u16(); // get the value of poti 2 - k = k >> 10; // we need only 6 bit for contrast - lcd_mutex.lock(); - LCD.set_contrast(k); - lcd_mutex.unlock(); - Thread::wait(500); // wait 0.5s -} + k = Pot2.read_u16(); // get the value of poti 2 + k = k >> 10; // we need only 6 bit for contrast + lcd_mutex.lock(); + LCD.set_contrast(k); + lcd_mutex.unlock(); + Thread::wait(500); // wait 0.5s + } } -// print the actual contrast +// Thread 5 (new for Lab experiment) +void thread5(void const *args) + +{ + + while(1) { + if (fire) { + leds=0xf;// All 4 leds will light when joysyick center button pressed + } else { + leds=joy; + } + wait(0.1); + } +} + + +// print the actual contrast int main() { int j; LCD.cls(); - + Thread t1(thread1); //start thread1 Thread t2(thread2); //start thread2 Thread t3(thread3); //start thread3 Thread t4(thread4); //start thread4 + Thread t5(thread5); //start thread5 (New) + while(true) { // main is the next thread lcd_mutex.lock();