%% Copyright (C) 2013 Czech Technical University in Prague %% %% Authors: %% - Carlos Jenkins %% %% This program is free software; you can redistribute it and/or modify %% it under the terms of the GNU General Public License as published by %% the Free Software Foundation; either version 2 of the License, or %% (at your option) any later version. %% %% This program is distributed in the hope that it will be useful, %% but WITHOUT ANY WARRANTY; without even the implied warranty of %% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %% GNU General Public License for more details. %% %% You should have received a copy of the GNU General Public License %% along with this program. If not, see . %% %% File : sfunction_din.tlc %% Abstract: %% TLC file for inlining RPP digital input block. %% %% References: %% BlockTypeSetup() : rtw_tlc.pdf p. 277 %% Start() : rtw_tlc.pdf p. 279 %% Outputs() : rtw_tlc.pdf p. 281 %implements sfunction_din "C" %include "common.tlc" %% Function: BlockTypeSetup ==================================================== %function BlockTypeSetup(block, system) void %% Ensure required header files are included % %endfunction %% Function: Start ============================================================= %function Start(block, system) Output %if !SLibCodeGenForSim() % %endif %assign pin_num = LibBlockParameterValue(p1, 0) rpp_din_setup(%, FALSE, TRUE, FALSE); %endfunction %% Function: Outputs =========================================================== %function Outputs(block, system) Output %if !SLibCodeGenForSim() %% Error flag %assign err_flag = LibBlockOutputSignal(1, "", "", 0) %% First executed block must update cached values %if EXISTS("_RPP_DIN_UPDATE_") == 0 %assign _RPP_DIN_UPDATE_ = 1 if(rpp_din_update() != SUCCESS) { % = TRUE; } %endif %% Get pin number and if to use variable threshold %assign pin_num = LibBlockParameterValue(p1, 0) %assign var_thr = LibBlockParameterValue(p2, 0) %% Get pin value int8_t tmp = rpp_din_get(%, %); if(tmp < 0) { % = TRUE; tmp = LOW; } %% Return input %assign digital_in = LibBlockOutputSignal(0, "", "", 0) % = tmp; %endif %endfunction %% [EOF]