Signalling thread inside ISR .. delay observed to be 15 us

Dependencies:   mbed-rtos mbed

Fork of rtos_basic by mbed official

Files at this revision

API Documentation at this revision

Comitter:
Piasiv1206
Date:
Mon Oct 26 17:45:59 2015 +0000
Parent:
6:209f4db62daf
Commit message:
signalling thread inside an ISR .. delay observed to be 15 us

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-rtos.lib Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Tue Jun 04 16:01:32 2013 +0100
+++ b/main.cpp	Mon Oct 26 17:45:59 2015 +0000
@@ -3,19 +3,110 @@
  
 DigitalOut led1(LED1);
 DigitalOut led2(LED2);
+InterruptIn button(PTC12);
+
+Thread *ptr_thread ;
+Thread *ptr_priya ;
+Thread *ptr_t_acs;
+Thread *ptr_t_bea;
+Thread *ptr_t_i2c;
+Thread *ptr_t_wdt;
+
+Timer t ;
+Timer P,pia ;
+Serial pc(USBTX, USBRX); // tx, rx  --> serial feedback for debug
+
+void flip(void);
+void T_BAE(void const *args);
+void T_ACS(void const *args);
  
-void led2_thread(void const *args) {
+ //Thread thread1(led3_thread);
+ 
+    //Thread thread(led2_thread);
+   // Thread Priya(led3_thread);
+
+
+void T_BAE(void const *args) {
     while (true) {
-        led2 = !led2;
-        Thread::wait(1000);
+        Thread::signal_wait(0x2);
+        pia.stop();
+        led1 = !led1;
+        //Thread::wait(1000);
+        
     }
 }
  
+
+
+
+ 
+
+ 
 int main() {
-    Thread thread(led2_thread);
     
+    ptr_t_acs = new Thread(T_ACS);
+    ptr_t_bea = new Thread(T_BAE);
+    ptr_t_bea->set_priority(osPriorityHigh);
+    ptr_t_acs->set_priority(osPriorityAboveNormal);
+    ptr_t_acs -> signal_set(0x1);
+    button.rise(&flip);
     while (true) {
-        led1 = !led1;
-        Thread::wait(500);
+            
+            P.start();
+            wait_us(1000);
+            led2 = !led2;
+            P.stop();
+            
+            
+            t.start();
+            wait_us(500);
+            t.stop();
+            //pia.start();
+            //ptr_t_bea -> signal_set(0x2);
+            
+            //thread.signal_set(0x1);
+            //Priya.set_priority(osPriorityAboveNormal);
+            pc.printf("Time Taken : %d \n\r",t.read_us());
+            pc.printf("Time Taken2 : %d \n\r",P.read_us());
+            pc.printf("Time Taken3 : %d \n\r",pia.read_us());
+            
+            wait (5);
+            
+            //time = t.read();
+            t.reset();
+            P.reset();
+            //pia.reset();
+            
+            
+            pc.printf("Time Taken(reset) : %d \n\r",t.read_us());
+            pc.printf("Time Taken2(reset) : %d \n\r",P.read_us());
+            
+            
+            
+            
+
+            
     }
 }
+
+void flip(void) {
+    
+    //Thread Priya(led3_thread);
+    pia.reset();
+    pia.start();
+    ptr_t_bea -> signal_set(0x2);
+    //led2 = !led2;
+}
+ 
+void T_ACS (void const *args) {
+    while (true) {
+        
+        Thread::signal_wait(0x1);
+        
+
+        led2 = !led2;
+        //Thread::wait(1000);
+        
+        
+    }
+}
\ No newline at end of file
--- a/mbed-rtos.lib	Tue Jun 04 16:01:32 2013 +0100
+++ b/mbed-rtos.lib	Mon Oct 26 17:45:59 2015 +0000
@@ -1,1 +1,1 @@
-https://mbed.org/users/mbed_official/code/mbed-rtos/
\ No newline at end of file
+https://mbed.org/users/mbed_official/code/mbed-rtos/#a21475017ae2
--- a/mbed.bld	Tue Jun 04 16:01:32 2013 +0100
+++ b/mbed.bld	Mon Oct 26 17:45:59 2015 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/mbed_official/code/mbed/builds/
\ No newline at end of file
+http://mbed.org/users/mbed_official/code/mbed/builds/7cff1c4259d7
\ No newline at end of file