From 842d4d3663a78f6e5c52eb79b3818ef264a8b330 Mon Sep 17 00:00:00 2001 From: Nis Wechselberg Date: Mon, 13 Mar 2017 08:28:12 +0100 Subject: [PATCH] Added ABRO Arduino implementation --- ABRO/ABRO.ino | 36 +++++++++++++ ABRO/ABROModel.c | 129 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 165 insertions(+) create mode 100644 ABRO/ABRO.ino create mode 100644 ABRO/ABROModel.c diff --git a/ABRO/ABRO.ino b/ABRO/ABRO.ino new file mode 100644 index 0000000..a703002 --- /dev/null +++ b/ABRO/ABRO.ino @@ -0,0 +1,36 @@ +#include "ABROModel.c" + +// Declarations + + +void setup() { + // Initializations + pinMode(11, INPUT); + pinMode(8, INPUT); + pinMode(5, INPUT); + pinMode(13, OUTPUT); + + + // Init model file + reset(); +} + +void loop() { + + // Inputs + A = digitalRead(11) ? HIGH : LOW; + B = digitalRead(8) ? HIGH : LOW; + R = digitalRead(5) ? HIGH : LOW; + + + // Reaction of model + tick(); + + // Outputs + if (O) { + digitalWrite(13, HIGH); + } else { + digitalWrite(13, LOW); + } + +} diff --git a/ABRO/ABROModel.c b/ABRO/ABROModel.c new file mode 100644 index 0000000..bdde8cf --- /dev/null +++ b/ABRO/ABROModel.c @@ -0,0 +1,129 @@ +/*****************************************************************************/ +/* G E N E R A T E D C C O D E */ +/*****************************************************************************/ +/* KIELER - Kiel Integrated Environment for Layout Eclipse RichClient */ +/* */ +/* http://www.informatik.uni-kiel.de/rtsys/kieler/ */ +/* Copyright 2014 by */ +/* + Kiel University */ +/* + Department of Computer Science */ +/* + Real-Time and Embedded Systems Group */ +/* */ +/* This code is provided under the terms of the Eclipse Public License (EPL).*/ +/*****************************************************************************/ +char A; +char B; +char R; +char O; +char _trig; +char _trig2; +char _ABRO_local__termRegion; +char _ABRO_local__termRegion2; +char _GO; +char g0; +char g1; +char PRE_g1; +char g2; +char g4; +char g5; +char g6; +char g7; +char PRE_g7; +char g8; +char g9; +char g11; +char g12; +char g13; +char g14; +char PRE_g14; +char g15; +char g17; +char g18; +char g19; +char g20; +char PRE_g20; +char g21; +char g22; +char g23; +char g24; +char PRE_g24; +char g25; +char _condg4; +char _condg13; +char _condg19; +char g6_e1; +char g12_e2; +char g18_e3; +void reset() { + _GO = 1; + PRE_g1 = 0; + PRE_g7 = 0; + PRE_g14 = 0; + PRE_g20 = 0; + PRE_g24 = 0; + return; +} +void tick() { + { + g0 = _GO; + g25 = (PRE_g24); + g8 = (PRE_g7); + g9 = (g8 && R); + if (g9) { + _trig = 1; + } + g2 = (PRE_g1); + if (g2) { + _trig = 0; + _trig2 = 0; + _ABRO_local__termRegion = 0; + _ABRO_local__termRegion2 = 0; + } + g21 = (PRE_g20); + g17 = (g2 || g21); + g19 = (g17 && (!(B))); + _condg19 = _trig; + g18 = ((g17 && B) || (g19 && _condg19)); + if (g18) { + _ABRO_local__termRegion2 = 1; + } + g15 = (PRE_g14); + g11 = (g2 || g15); + g13 = (g11 && (!(A))); + _condg13 = _trig; + g12 = ((g13 && _condg13) || (g11 && A)); + if (g12) { + _ABRO_local__termRegion = 1; + } + g4 = (g2 || (g8 && (!(R)))); + _condg4 = (_ABRO_local__termRegion && _ABRO_local__termRegion2); + g5 = (g4 && _condg4); + if (g5) { + _trig2 = 1; + } + g6 = (g9 || g5); + g7 = (g4 && (!(_condg4))); + g14 = (g13 && (!(_condg13))); + g20 = (g19 && (!(_condg19))); + g12_e2 = (!(g14)); + g6_e1 = (!(g7)); + g18_e3 = (!(g20)); + g22 = ((g6_e1 || g6) && (g12_e2 || g12) && (g18_e3 || g18) && (g6 || g12 || g18)); + g1 = (_GO || (g25 && R) || (g22 && _trig)); + if (g1) { + O = 0; + } + g23 = (g22 && (!(_trig))); + if (g23) { + O = 1; + } + g24 = (g23 || (g25 && (!(R)))); + } + PRE_g1 = g1; + PRE_g7 = g7; + PRE_g14 = g14; + PRE_g20 = g20; + PRE_g24 = g24; + _GO = 0; + return; +}