1 %% Copyright (C) 2013 Czech Technical University in Prague
4 %% - Carlos Jenkins <carlos@jenkins.co.cr>
6 %% This program is free software; you can redistribute it and/or modify
7 %% it under the terms of the GNU General Public License as published by
8 %% the Free Software Foundation; either version 2 of the License, or
9 %% (at your option) any later version.
11 %% This program is distributed in the hope that it will be useful,
12 %% but WITHOUT ANY WARRANTY; without even the implied warranty of
13 %% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 %% GNU General Public License for more details.
16 %% You should have received a copy of the GNU General Public License
17 %% along with this program. If not, see <http://www.gnu.org/licenses/>.
19 %% File : sfunction_din.tlc
21 %% TLC file for inlining RPP digital input block.
24 %% BlockTypeSetup() : rtw_tlc.pdf p. 277
25 %% Start() : rtw_tlc.pdf p. 279
26 %% Outputs() : rtw_tlc.pdf p. 281
29 %implements sfunction_din "C"
34 %% Function: BlockTypeSetup ====================================================
35 %function BlockTypeSetup(block, system) void
37 %% Ensure required header files are included
38 %<RppCommonBlockTypeSetup(block, system)>
43 %% Function: Start =============================================================
44 %function Start(block, system) Output
46 %if !SLibCodeGenForSim()
47 %assign pin_num = LibBlockParameterValue(p1, 0)
48 rpp_din_setup(%<pin_num>, FALSE, TRUE, FALSE);
54 %% Function: Outputs ===========================================================
55 %function Outputs(block, system) Output
57 %if !SLibCodeGenForSim()
59 %% Declare temporal variables
60 %if EXISTS("_RPP_DIN_TMP_VARS_") == 0
61 %assign ::_RPP_DIN_TMP_VARS_ = 1
66 %assign err_flag = LibBlockOutputSignal(1, "", "", 0)
68 %% First executed block must update cached values
69 %if EXISTS("_RPP_DIN_UPDATE_") == 0
70 %assign ::_RPP_DIN_UPDATE_ = 1
71 if(rpp_din_update() != SUCCESS) {
76 %% Get pin number and if to use variable threshold
77 %assign pin_num = LibBlockParameterValue(p1, 0)
78 %assign var_thr = LibBlockParameterValue(p2, 0)
81 din_tmp = rpp_din_get(%<pin_num>, %<var_thr>);
88 %assign digital_in = LibBlockOutputSignal(0, "", "", 0)
89 %<digital_in> = din_tmp;