Added ABRO Arduino implementation
This commit is contained in:
parent
045f7bcad2
commit
842d4d3663
2 changed files with 165 additions and 0 deletions
36
ABRO/ABRO.ino
Normal file
36
ABRO/ABRO.ino
Normal file
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
129
ABRO/ABROModel.c
Normal file
129
ABRO/ABROModel.c
Normal file
|
@ -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;
|
||||
}
|
Loading…
Reference in a new issue