IT Tralee lab experiments

Dependencies:   mbed mbed-rtos C12832_lcd LCD_fonts

Files at this revision

API Documentation at this revision

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();