summaryrefslogtreecommitdiff
path: root/2.3-1/src/c/hardware/rasberrypi/Interrupt
diff options
context:
space:
mode:
authorBrijeshcr2017-07-06 15:48:47 +0530
committerGitHub2017-07-06 15:48:47 +0530
commitc600ebcb67961fe6007ba41fd5ad987da3af7f6e (patch)
tree26fc9679644561759e8a2c4080059d30b70a3105 /2.3-1/src/c/hardware/rasberrypi/Interrupt
parenta7eeecce4c7c39ea52a2d434815c574a2c42730d (diff)
downloadScilab2C-c600ebcb67961fe6007ba41fd5ad987da3af7f6e.tar.gz
Scilab2C-c600ebcb67961fe6007ba41fd5ad987da3af7f6e.tar.bz2
Scilab2C-c600ebcb67961fe6007ba41fd5ad987da3af7f6e.zip
Revert "LinearAlgebra Function Added"
Diffstat (limited to '2.3-1/src/c/hardware/rasberrypi/Interrupt')
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/Interrupt/u8RPI_waitForInterrupts.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/2.3-1/src/c/hardware/rasberrypi/Interrupt/u8RPI_waitForInterrupts.c b/2.3-1/src/c/hardware/rasberrypi/Interrupt/u8RPI_waitForInterrupts.c
new file mode 100644
index 00000000..ab15b8de
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/Interrupt/u8RPI_waitForInterrupts.c
@@ -0,0 +1,44 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, which
+ you should have received as part of this distribution. The terms
+ are also available at
+ http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ Author: Jorawar Singh, Siddhesh Wani
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include "RPIPeripheralInterrupt.h"
+#include "RPI_wfi.h"
+#include <sys/time.h>
+#include <math.h>
+#include <stdlib.h>
+
+int8 u8RPI_waitForInterrupts(uint8 pin,int16 time){
+ __RPI_wfi=0;
+ if (wiringPiISR(pin,3,&RPI_wfi)<0){
+ return -1;
+ }
+ if (time==-1){
+ while (__RPI_wfi==0){;}
+ return 1;
+ }
+ else{
+ struct timeval time1,time2;
+ int nDigits;
+ double t1,t2;
+ gettimeofday(&time1, NULL);
+ nDigits=floor(log10(abs(time1.tv_usec)))+1;
+ t1=time1.tv_sec+time1.tv_usec/nDigits;
+ t2=t1;
+ while (__RPI_wfi==0 && t2-t1<time){
+ gettimeofday(&time2,NULL);
+ nDigits=floor(log10(abs(time2.tv_usec)))+1;
+ t2=time2.tv_sec+time2.tv_usec/nDigits;
+ }
+ if (__RPI_wfi==0){return 0;}
+ else{return 1;}
+ }
+}