- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 6 von 6

Thema: Kann mir bitte jemand diesen Code erklären?

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.01.2006
    Ort
    Straubing
    Alter
    47
    Beiträge
    699

    Kann mir bitte jemand diesen Code erklären?

    Anzeige

    Praxistest und DIY Projekte
    Code:
    lcd_select=Off
           gosub LCD_CLS
           cmd=Line1 : gosub LCD_CMD
           sys prnLCD,LCD_RS_1 or SRPorts : print "* *  M A N U E L L  L I C H T * *";
           cmd=Line1+34 : gosub LCD_CMD
           sys prnLCD,LCD_RS_1 or SRPorts : print "#=Ende";
           cmd=Line2+2 : gosub LCD_CMD
           sys prnLCD,LCD_RS_1 or SRPorts : print "1 = EIN gr. Licht";
           cmd=Line2+23 : gosub LCD_CMD
           sys prnLCD,LCD_RS_1 or SRPorts : print "4 = EIN kl. Licht";
           lcd_select=on
           gosub LCD_CLS
           cmd=Line1+2 : gosub LCD_CMD
           sys prnLCD,LCD_RS_1 or SRPorts : print "2 = AUS";
           cmd=Line1+23 : gosub LCD_CMD
           sys prnLCD,LCD_RS_1 or SRPorts : print "5 = AUS";
           cmd=Line2+2 : gosub LCD_CMD
           sys prnLCD,LCD_RS_1 or SRPorts : print "3 = AUTOMATIK";
           cmd=Line2+23 : gosub LCD_CMD
           sys prnLCD,LCD_RS_1 or SRPorts : print "6 = AUTOMATIK";
           return
    und hier die definitionen

    define Hauptfilter port[1] 'Hauptfilter
    define Schnellfilter port[2] 'Schnellfilter
    define Heizung port[3] 'Heizung
    define Leuchte1 port[4] 'grosse Lichteiste
    define Leuchte2 port[5] 'kleine Lichtleiste
    define Magnetventil port[6] 'CO2-Anlage
    define ReserveDP1 port[7] 'Reserve
    define ReserveDP2 port[8] 'Reserve
    define shclk port[9] 'Display
    define ds port[10] 'Display
    define LCD_Select port[11] 'Display
    define stclk port[12] 'Display
    define Temp AD[1] 'Eingang Temperaturmessverstaerker
    define Ph AD[2] 'Eingang Ph-Messverstaerker
    define ReserveAP3 AD[3] 'Reserve
    define ReserveAP4 AD[4] 'Reserve
    define ReserveAP5 AD[5] 'Reserve
    define ReserveAP6 AD[6] 'Reserve
    define ReserveAP7 AD[7] 'Reserve
    define Tastatur AD[8] 'Eingang Tastatur
    '
    ' *** Variablen-Definitionen ***
    '
    define Tabelle word 'Zwischenspeicher Auslesen der Tabellen
    define Neuerwert word 'interner Zwischenspeicher für Werte ändern
    define Wordspeicher word 'Uebergabevariable Wordspeicher
    define Zwischenspeicher word 'Zwischenspeicher Berechnungen und Wordspeicher
    define addr word 'Speicheradresse des EEprom
    define wert word 'Übergabespeicher
    define cmd word 'Kommando für LCD
    define Werte_Einstellen byte 'Angabe Speicherzellennummer Wordspeicher
    define key_nr byte 'Tastatur
    define compare byte 'Tastatur
    define Minutenzaehler byte 'Minutenzaehler Fuettern
    define SRPorts byte[24] 'LCD - Ports (SRPorts)
    define Hauptmenu bit[161]
    define Automatik bit[162]
    define Setup bit[163]
    define Wartung bit[164]
    define Futter bit[165]
    define Manuell bit[166]
    define Einstellen bit[158]
    define Setup_Beleuchtung bit[167]
    define Setup_Beleuchtung_Leuchte1 bit[168]
    define Setup_Beleuchtung_Leuchte2 bit[169]
    define Setup_Heizung bit[170]
    define Setup_Schnellfilter bit[160]
    define Setup_CO2 bit[171]
    define Setup_Wartung bit[159]
    define Manuell_Beleuchtung bit[172]
    define Manuell_Heizung bit[173]
    define Manuell_Filter bit[174]
    define Manuell_CO2 bit[175]
    define Hauptfilter_Hand bit[176]
    define Hauptfilter_Alarm bit[177]
    define Schnellfilter_Hand bit[178]
    define Schnellfilter_Alarm bit[179]
    define Wasserwechsel_Alarm bit[180]
    define Bel1_Hand bit[181]
    define Bel2_Hand bit[182]
    define Heizung_Hand bit[183]
    define CO2_Hand bit[184]
    define RS bit[185]
    define LCDLight bit[187]
    define SRPort1 bit[188]
    define SRPort2 bit[189]
    define SRPort3 bit[190]
    define SRPort4 bit[191]
    define SRPort5 bit[192]
    define Standardanzeige bit[186]
    define Eingeben_Stoppen bit[157]


    define LCD_RS_0 &B10 : define LCD_RS_1 &B11 :define LCD_nowrite &B0

    '******** Einsprungadressen für LCD Ausgabe***********
    define prnLCD &h151
    define pcmd &h101
    define setp &h130

    '******** Einsprungadressen für PCF 8574 ******
    define pop DA[1] 'Trick zum Auslesen des Stacks(siehe ccintern.dharlos.de)
    define PCFread &h16c
    define PCFwrite &h160
    define PCF 64 'Adresse des PCF8574

    '******* Einsprungadressen für EEpromzugriff (24C256) *******
    define wrWord &h1ba 'Word-Wert in EEprom schreiben
    define wrByte &h1cb 'Byte-Wert in EEprom schreiben
    define rdWord &h1d7 'Word-Wert aus EEprom auslesen
    define rdByte &h1e5 'Byte-Wert aus EEprom auslesen

    '******* Definition der Speicherzellen für EEPromzugriff ******
    define SPZ1 32500 'Speicherzelle 1
    define SPZ2 32502 'Speicherzelle 2
    define SPZ3 32504 'Speicherzelle 3
    define SPZ4 32506 'Speicherzelle 4
    define SPZ5 32508
    define SPZ6 32510
    define SPZ7 32512
    define SPZ8 32514
    define SPZ9 32516
    define SPZ10 32518
    define SPZ11 32520
    define SPZ12 32522
    define SPZ13 32524
    define SPZ14 32526
    define SPZ15 32528
    define SPZ16 32530
    define SPZ17 32532
    define SPZ18 32534
    define SPZ19 32536
    define SPZ20 32538
    define SPZ21 32540
    define SPZ22 32542
    define SPZ23 32544
    define SPZ24 32546

    Ich bin ein blutiger Anfänger, und möchte es auch lernen nur werde ich aus manchen Sachen einfach nicht schlau

    Vielen Dank im Voraus

    gruß meddie

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    30.12.2005
    Ort
    Tann / ZH
    Alter
    68
    Beiträge
    264
    Scheint sich um eine Funktion zur Ansteuerung eines LCD-Displays
    zu handeln (2-Zeilig). Bei der Programmiersprache handelt es sich um Basic.
    'diese Zeile ist ein Kommentar

    Wo hast Du den Code her ? Programmierst Du schon ? Wenn ja in welcher
    Programmiersprache ?
    MfG
    Ruedi

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.01.2006
    Ort
    Straubing
    Alter
    47
    Beiträge
    699
    Das ist ein Programm für eine Aquariumsteuerung, den Coder habe ich aus dem Internet und versuche krampfhaft den an meine Bedürfnisse und Hardware anzupassen.

    Ich bin nicht so der Programmiere ich habe ein paar php scripte geschrieben, unter delphi ein paar winzige proggis das wars dann aber schon. von daher meine frage.

    was macht eigentlich diese Zeile: sys prnLCD,LCD_RS_1 or SRPorts : print "1 = EIN gr. Licht";

    mir ist klar das da zum Display geschickt wird schreibe ""1 = EIN gr. Licht"
    aber wofür ist das or SRPorts :

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803

    Prog unklar

    SRPorts ist als byte[24] definiert! Mit "or" wird eine Maskierung mit der Konstante LCD_RS_1 erreicht. Den Sinn wird man nur im Kontext des ganzen Programms verstehen können.

    Gruß Dirk

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.01.2006
    Ort
    Straubing
    Alter
    47
    Beiträge
    699
    hier im anhang ist alles komplett drin
    Angehängte Dateien Angehängte Dateien

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    16.09.2004
    Ort
    Schwabenland
    Beiträge
    156
    sys prnLCD,LCD_RS_1 or SRPorts : print "1 = EIN gr. Licht";
    Mit sys wird ein Assemblercode mit Übergabe "LCD_RS_1 or SRPorts " aufgerufen (weiter unten steht die Anweisung zum Laden des Assemblercodes: syscode "srlcd_PCF_EE.s19").
    Da wird anscheinend dann der folgende Print-Befehl aufs LCD umgeleitet.

Berechtigungen

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

12V Akku bauen