- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 8 von 8

Thema: Programmierung Tropfensteuerung

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Okay - es sollen also nur drei Zeiten eingeben werden...
    Nennen wir sie mal Zeit1, Zeit2 und Zeit3, dann würde ich das vom Prinzip her so machen:

    Code:
    ...
    Dim Zeit1 as Word
    Dim Zeit2 as Word
    Dim Zeit3 as Word
    Dim X as Word
    ...
    
    Do
    
    Locate 1,1
    LCD "Zeit 1:"
    
    Eingabe_Zeit1:
    X = Getadc(1)
    
    Zeit1 = X * ..... 
    Zeit1 = Zeit1 + ...
    (Hier wird der GetADC-Wert in einen passenden Wert für Zeit1 umgerechnet, je nachdem welchen Wertebereich Zeit1 haben soll)   
    
    Locate 2,1
    LCD Zeit1; "   " '3 Leerstellen, damit "alte" Ziffern vom vorigen Wert überschrieben werden, wenn Zeit1 weniger Stellen haben sollte als der vorige Wert 
    
    If Taster1 = 1 then goto Eingabe_Zeit1
    Bitwait Taster1, set 'Wartet ab, bis der Taster losgelassen wurde
    waitms 10 'noch eine kurze Pause, um Prellen abklingen zu lassen
    
    CLS
    
    Locate 1,1
    LCD "Zeit 2:"
    
    Eingabe_Zeit2:
    X = Getadc(1)
    
    Zeit2 = X * ...
    Zeit2 = Zeit2 + ...
    (Erneut: Berechnung von Zeit2 aus GetADC-Wert...)
    
    Locate 2,1
    LCD Zeit2; "   " 
    
    If Taster1 = 1 then goto Eingabe_Zeit2
    Bitwait Taster1, set
    waitms 10
    
    
    ...
    (gleiches Spiel für Zeit 3)

    ...und fertig!

    Und Du hast schon recht, dass man ein Unterprogramm natürlich nur mit GOSUB anspringen kann. Aber man muss es unbedingt mit Return verlassen, und nicht mit einem GOTO!
    Geändert von Sauerbruch (20.04.2014 um 16:17 Uhr)

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    03.08.2009
    Ort
    SFB
    Beiträge
    60
    Und wie mache ich das mit dem timer 1 das man in auf eine bestimmte Zeit einstellte..? Zum Beispiel 230ms ? Und für verschiedene Werte verwenden kann? Oder ist mein Ansatz richtig?

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    03.08.2009
    Ort
    SFB
    Beiträge
    60
    Zitat Zitat von Sauerbruch Beitrag anzeigen
    Das Unterprogramm Start_tat wird über ein GOTO verlassen - und das muss zu Problemen führen!
    Wieso? Weil der Controller bei jedem GOSUB-Befehl diejenige Adresse, bei der das Hauptprogramm gerade war, auf den sogenannten "Stack" legt.
    Dann kommen wir bestimmt irgendwie weiter!
    Verstehe ich das richtig das ein Gosub immer ein return benötigt?
    Aber wie ist das mit goto? das kann man doch in einer schleife sogar laufen lassen?
    Also tausche ich mein Gosub in Goto?

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    53
    Beiträge
    765
    Ich habe mir den Code nicht angesehen. Aber ein Goto zum hin- und herspringen macht keinen Sinn. da kann man den Code gleich an die entsprechende Stelle packen. Ein gosub wird genutzt, wenn bestimmte Codesegmente öfter benutzt werden. So spart man Platz und braucht nur eine Sub ändern, wenn was geändert werden soll.

    Es braucht nicht jedes Gosub ein Return. Am Ende muss aber ein Return kommen.
    Z.B.

    Code:
      ...
       do
           gosub sb1
           x=5
           gosub sb2
           ...
           ...
           ...
       loop
       end
    sb1:
         x=3
    sb2:
        y=x+1
    return
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Es braucht nicht jedes Gosub ein Return. Am Ende muss aber ein Return kommen.
    Das stimmt - aber es ist natürlich unerlässlich, dass das RETURN auch ausgeführt wird! Es dürfen also keine GOTO-Befehle davor stehen, die den Controller wieder irgendwo anders hinspringen lassen!

Ähnliche Themen

  1. Programmierung
    Von Kene im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 8
    Letzter Beitrag: 02.10.2010, 19:30
  2. programmierung
    Von dasfeld im Forum Robby RP6
    Antworten: 5
    Letzter Beitrag: 11.11.2007, 18:42
  3. Programmierung
    Von .:tuxianer:. im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 13
    Letzter Beitrag: 13.07.2007, 21:39
  4. IC Programmierung
    Von Foncy im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 11.08.2005, 19:46
  5. Programmierung in C
    Von besa im Forum Robby CCRP5
    Antworten: 12
    Letzter Beitrag: 01.03.2004, 19:08

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test