# HG changeset patch # User laurent # Date 1301235576 -7200 # Node ID 18988de676ac5426ddfbeef365c56ba6c704539a # Parent 0bda13ec66b3b4b5881dfa96202a1480d827e551# Parent 5e7457efbb8fe7916ae9fd08aa45d7e123dd8b17 Merged with Edouard's modifications diff -r 0bda13ec66b3 -r 18988de676ac lib/ieclib.txt --- a/lib/ieclib.txt Sun Mar 27 15:55:51 2011 +0200 +++ b/lib/ieclib.txt Sun Mar 27 16:19:36 2011 +0200 @@ -36,3 +36,4 @@ {#include "integral_st.txt" } {#include "pid_st.txt" } {#include "ramp_st.txt" } +{#include "sema.txt" } diff -r 0bda13ec66b3 -r 18988de676ac lib/sema.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/sema.txt Sun Mar 27 16:19:36 2011 +0200 @@ -0,0 +1,25 @@ +(* + * (c) 2011 Edouard Tisserant + * + * Fake semaphore support, for non preemptive implementation. + * + *) + + +FUNCTION_BLOCK SEMA + VAR_INPUT + CLAIM : BOOL; + RELEASE : BOOL; + END_VAR + VAR_OUTPUT + BUSY : BOOL; + END_VAR + VAR + Q_INTERNAL : BOOL; + END_VAR + + Q_INTERNAL := CLAIM OR ( Q_INTERNAL AND (NOT RELEASE)); + BUSY := Q_INTERNAL; + +END_FUNCTION_BLOCK +