INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Frage zu goto
23.12.2018, 12:19
Beitrag #1
Frage zu goto
Hallo Zusammen, ich bin neu hier und hab mir schon einiges durchgelesen.
Der Arduino ist für mich ebenfalls neu, aber erscheint mir aufgrund der Kosten und Möglichkeiten sehr geeignet kleinere Projekte damit zu realisieren.
Gleich vorweg, von c++ habe ich nur wenig Ahnung. Früher hatte ich SPS programmiert und dann vor Jahren ein paar Dinge mit einer CCOntrol von Conrad gemacht. Gartenbewässerung, Poolsteuerung usw.
Dann habe ich noch eine Steuerung für ein Stromagregat gemacht um automatisch zu starten und stoppen und genau darum geht es mir jetzt. Ich möchte diese Steuerung nochmal neu mit einem Arduino machen. Eignetlich ist mir auch alles klar wie ich das umsetzen kann, dann habe ich hier einiges gelesen über die Programmierung und Goto's und das man diese wohl nicht mehr so anwendet.
Im Moment habe ich aber keine Idee wie ich die goto's ersetzen kann, würde es aber gerne gleich von Anfang an richtig machen.
Deshalb hier meine Frage, wie kann ich die Goto's im folgenden ccbasic Programmcode ersetzen.

Code:
'
' C-Control1/BASIC       aggregat.bas
'
' Systemvoraussetzungen:
'
' - serielle Verbindung zum PC
'
' Start Stop Automatik für ein Strom Aggregat
'
'********************************************************************

'Eingänge
define start_key       port[1] 'taster
define stop_key        port[2] 'taster
define oeldruck        port[3] 'Öldruckschalter
define strom           port[4] 'Aggregat liefert Strom
define auto_start      port[5] 'Relais vom ASP

'Ausgänge
define start_relais port[9]
define stop_relais  port[10]

'bits
define start_bit   bit[1]
define stop_bit    bit[2]
define strom_bit   bit[3]
define strom_aus   bit[4]
define asp_bit     bit[5]
define asp_aus     bit[6]

'****** Programm ******

#loop


if not start_key or not auto_start then gosub start else start_bit = off
if not stop_key or not oeldruck or strom_aus or asp_aus = on then gosub stop else stop_bit = off
if  not strom = on then strom_bit = on
if not strom = off and strom_bit = on then strom_aus = on
if not auto_start = on then asp_bit = on
if not auto_start = off and asp_bit = on then asp_aus = on

goto loop

'****** Programm Ende ******

'Unterroutinen
#start
  if not strom = on then return
  if start_bit = ON then return
  start_bit = on
  start_relais = ON :  pause 150
  start_relais = off
return

#stop
  strom_aus = off :   strom_bit = off : asp_bit = off
  if stop_bit = ON then return
  stop_bit = on
  stop_relais = ON :  pause 500 '2sec = 100 * 20 ms
  stop_relais = off
  asp_aus = off
return
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.12.2018, 12:31
Beitrag #2
RE: Frage zu goto
Das Basic-Programm als Grundlage wird Dich wohl meist in die Irre führen.
Du solltest als erstes die Grundlagen der Arduino-Programmierung in C/C++ lernen.
Dazu gibt es viele gute Beiträge in der Rubrik Tutorials und Literatur.

Der einfachste Einstig erfolgt mit einem Starterkit (z.B. von hier oder von wo anders, nur möglichst nicht von Franzis).
Dabei wirst Du merken, dass Du goto loop nicht brauchst, weil Du bereits einen Loop hast.
Gosub sind in C/C++ Funktionen.

Über diesen Weg wirst Du Deine Probleme sicher lösen können. Wenn Du dabei konkrete Fragen hast, kannst Du die gern hier stellen.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.12.2018, 12:58
Beitrag #3
RE: Frage zu goto
Hey vielen Dank,
ich hab mir auch schon einige Programmbeispiele angeschaut und verstehe diese auch weitestgehend.
Ich hab nur noch nichts konkretes gefunden wie man in eine Unterroutine springen kann.
Ich finde das eigentlich sehr übersichtlich, ein paar Zeilen Hauptprogramm und den Start und den Stop in eine Unterroutine zu schreiben.
Klar den gotoLoop brauche ich nicht weil er schon da ist.
Mir geht es um die goto Unterroutine, da sehe ich im Moment die Lösung nicht um das ohne goto zu lösen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.12.2018, 13:28 (Dieser Beitrag wurde zuletzt bearbeitet: 23.12.2018 13:29 von hotsystems.)
Beitrag #4
RE: Frage zu goto
(23.12.2018 12:58)uweausbaden schrieb:  .....
Mir geht es um die goto Unterroutine, da sehe ich im Moment die Lösung nicht um das ohne goto zu lösen.

Auch das ist nicht kompliziert:

Beispiel:
Code:
//deine loop
void loop()
{
deine_funktion()  //aufruf deiner Funktion (Unterroutine)
}

// deine Funktion
void deine_funktion()
{
//hier stehen deine Anweisungen
}

Am Ende der Funktion geht es automatisch zurück, von wo aus die Funktion aufgerufen wurde.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.12.2018, 13:32
Beitrag #5
RE: Frage zu goto
ahhh ok, also ich rufe eine Funktion auf anstatt mit einem goto hin zu springen.
OK verstanden.
Merci vielmals.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.12.2018, 13:56
Beitrag #6
RE: Frage zu goto
(23.12.2018 13:32)uweausbaden schrieb:  ahhh ok, also ich rufe eine Funktion auf anstatt mit einem goto hin zu springen.
OK verstanden.
Merci vielmals.

Ja, genau....gerne.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Switch-Case-Auswahl Frage Christian_Moba-Arduino 4 207 02.02.2020 17:27
Letzter Beitrag: Christian_Moba-Arduino
  Frage zu meinem Sketch JaimyS 7 344 15.01.2020 18:15
Letzter Beitrag: MicroBahner
  Grundsätzliche Frage zu #include DO3GE 2 438 22.11.2019 09:01
Letzter Beitrag: DO3GE
  Eine Frage zu SPI Gary 3 603 01.10.2019 20:54
Letzter Beitrag: Gary
  Ethernet-Bibliothek, Frage zu: EthernetClient client = server.available(); karl? 2 776 16.08.2019 10:18
Letzter Beitrag: Tommy56
  Hilfe bei Formulierung der Frage Matt 3 1.176 23.02.2019 12:45
Letzter Beitrag: Tommy56
  Frage zur Datei "preferences.txt" daja64 5 912 17.02.2019 21:00
Letzter Beitrag: amithlon
  Guren Morgen, Frage zu SD BanditBandeh 2 669 05.12.2018 10:19
Letzter Beitrag: Tommy56
  define Frage Zerebrator 5 963 22.08.2018 08:22
Letzter Beitrag: amithlon
  Frage zur Programierung ????? potmc 7 1.054 18.08.2018 11:34
Letzter Beitrag: Hilgi

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste