Hallo.
Bin jetzt seit längerem auf der Suche nach einer Lösung für mein Problem. Habe für den Arduino ein kleines Zählprogramm geschrieben. Nun möchte ich dieses Programm unter Nutzung der GPIO Schnitstelle auf dem Raspberry Pi zum laufen bekommen. Leider finde ich unter Google oder hier im Forum nicht die passende Hilfe.
Frage ist jetzt ob ich dieses Programm relativ schnell und einfach portieren kann oder ob ich es komplett neu schreiben muss.
Habe den Quelltext unten mal angefügt.
C
//Externes Zählprogramm Ma.58
//Displaydefinition
#include "SPI.h"
#include "Adafruit_GFX.h"
#include "Adafruit_ILI9340.h"
#if defined(__SAM3X8E__)
#undef __FlashStringHelper::F(string_literal)
#define F(string_literal) string_literal
#endif
#define _sclk 13
#define _miso 12
#define _mosi 11
#define _cs 10
#define _dc 9
#define _rst 8
Adafruit_ILI9340 tft = Adafruit_ILI9340(_cs, _dc, _rst);
//Eingangsdefinition
#define Adaptronic 2
#define TauSteck 3
#define PinSteck 4
#define TauPlatine 5
#define PinPlatine 6
#define niOAdept 7
#define iOAdept 14
#define Kontakte 15
#define Neu 15
//Zählvariablen
//Adaptronic
long A = 0;
//TauSteck
long B = 0;
//PinSteck
long C = 0;
//TauPlatine
long D = 0;
//PinPlatine
long E = 0;
//niOAdept
long F = 0;
//iOAdept
long G = 0;
//Kontaktvariablen
long H = 0;
long I = 0;
void setup()
{
Serial.begin(9600);
tft.begin();
tft.fillScreen(ILI9340_BLACK);
tft.setTextSize(2);
tft.println (" Ma 58 Zaehler: ");
tft.println ();
tft.println (" Zaehlung beginnt");
tft.println ();
tft.println ("mit erstem Eingang.");
pinMode (Adaptronic, INPUT);
pinMode (TauSteck, INPUT);
pinMode (PinSteck, INPUT);
pinMode (TauPlatine, INPUT);
pinMode (PinPlatine, INPUT);
pinMode (niOAdept, INPUT);
pinMode (iOAdept, INPUT);
pinMode (Kontakte, INPUT);
pinMode (Neu, INPUT);
}
//Im Loop werden die Zählprogramme mit Hilfe des IF-Vergleichs aufgerufen
void loop()
{
if (digitalRead(Adaptronic) == HIGH)
{
zaehlt_Adaptronic();
Ausgabe();
}
if (digitalRead(TauSteck) == HIGH)
{
zaehlt_Tausteck();
Ausgabe();
}
if (digitalRead(PinSteck) == HIGH)
{
zaehlt_Pinsteck();
Ausgabe();
}
if (digitalRead(TauPlatine) == HIGH)
{
zaehlt_TauPlatine();
Ausgabe();
}
if (digitalRead(PinPlatine) == HIGH)
{
zaehlt_PinPlatine();
Ausgabe();
}
if (digitalRead(niOAdept) == HIGH)
{
zaehlt_niOAdept();
Ausgabe();
}
if (digitalRead(iOAdept) == HIGH)
{
zaehlt_iOAdept();
Ausgabe();
}
if (digitalRead(Kontakte) == HIGH)
{
zaehlt_Kontakte();
Ausgabe();
}
}
void zaehlt_Adaptronic()
{
//Zähler für Adaptronic
A = A + 1;
delay (20);
}
void zaehlt_Tausteck()
{
//Zähler Taumelkreis Steckgesicht
B = B + 1;
delay (20);
}
void zaehlt_Pinsteck()
{
//Zähler für Pinlänge Steckgesicht´
C = C + 1;
delay (20);
}
void zaehlt_TauPlatine()
{
//Zähler für Taumelkreis Platine
D = D + 1;
delay (20);
}
void zaehlt_PinPlatine()
{
//Zähler für Pinlänge Platine
E = E + 1;
delay (20);
}
void zaehlt_niOAdept()
{
//Zähler niO-Teile Adept
F = F + 1;
delay (20);
}
void zaehlt_iOAdept()
{
//Zähler iO-Teile Adept
G = G + 1;
delay (20);
}
void zaehlt_Kontakte()
{
//Zähler für Kontakte
H = H + 1;
I = H * 5;
delay (20);
}
void mache_Reset()
{
//Resetfunktion
A = 0;
B = 0;
C = 0;
D = 0;
E = 0;
F = 0;
G = 0;
H = 0;
I = 0;
}
Alles anzeigen