-
        

Ergebnis 1 bis 2 von 2

Thema: Mit Sollwerten aus EEPROM arbeiten

  1. #1
    Neuer Benutzer
    Registriert seit
    16.05.2006
    Alter
    49
    Beiträge
    2

    Mit Sollwerten aus EEPROM arbeiten

    Anzeige

    Hallo alle zusammen,

    ich bin relativ neu hier und habe bislang auch noch nichts mit Bascom zu tun gehabt. Bislang habe ich nur PLCs (Kleinsteuerungen) oder in ActionScript (Multimedia-Projekte mit Macromedia Flash) programmiert. Ein prinzipielles Verständnis für's Programmieren sollte also eigentlich vorhanden sein .
    Nun zu meinem Vorhaben:
    Zusammen mit einem Kumpel möchte ich eine Temperatursteuerung realisieren, bei der man verschiedene Sollwerte einstellen und dann an den µC (ins EEPROM) übertragen kann. Für jeden Monat sollen je zwei Temperatursollwerte (jeweils für die 1. und 2. Monatshälfte) übertragen werden. Außerdem soll es jeweils unterschiedliche Temperaturen für Tag und Nacht geben, so dass neben den jeweiligen Tages- u. Nachttemperaturen auch noch vorgegeben werden muß, ab wieviel Uhr der Tag, bzw. die Nacht beginnt. Pro Monat also insgesamt 8 Werte - Tagestemperatur, Nachttemperatur, Tagesbeginn, Nachtbeginn, jeweils für eine Monatshälfte.
    Hier mal der Code für den Monat Januar:
    Code:
    Dim TempDay as byte                      ' Variable für die Tagestemperatur
    Dim TempNight as byte                    ' Variable für die Nachttemperatur
    Dim Day as byte                          ' Variable für die Stunde in der das Licht eingeschaltet wird
    Dim Night as byte                        ' Variable für die Stunde in der das Licht ausgeschaltet wird
    Dim Temperature as byte                  ' Variable für die Temperatur auf Grundlage des gewählten Sollwerts
    Dim Jan1TempDay as ERAM byte At 1
    Dim Jan1TempNight as ERAM byte At 2
    Dim Jan1Day as ERAM byte At 3
    Dim Jan1Night as ERAM byte At 4 
    Dim Jan2TempDay as ERAM byte At 5
    Dim Jan2TempNight as ERAM byte At 6
    Dim Jan2Day as ERAM byte At 7
    Dim Jan2Night as ERAM byte At 8
    
    '###nachfolgend Datumsabfrage
    
    TempDay=25                               'Voreingestellte Tagestemperatur 25°C, falls noch keine Daten im EEPROM
    TempNight=21                             'Voreingestellte Nachttemperatur 21°C, falls noch keine Daten im EEPROM
    Day=9                                    'Voreingestellter Tagesbeginn 9:00Uhr, falls noch keine Daten im EEPROM
    Night=21                                 'Voreingestellter Nachtbeginn 21:00Uhr, falls noch keine Daten im EEPROM
    'JANUAR
      If _month = 1 And _day < 15 Then       ' Abfrage - ob Datum in der 1. Januarhälfte
           TempDay=Jan1TempDay               ' Sollwert -Tagestemperatur- für 1.Januarhälfte im EEPROM der SRAM Variablen zuweisen
           TempNight=Jan1TempNight           ' Sollwert -Nachttemperatur- für 1.Januarhälfte im EEPROM der SRAM Variablen zuweisen
           Day=Jan1Day                       ' Sollwert -Tagesbeginn- für 1.Januarhälfte im EEPROM der SRAM Variablen zuweisen
           Night=Jan1Night                   ' Sollwert -Nachtbeginn- für 1.Januarhälfte im EEPROM der SRAM Variablen zuweisen
      Elseif _month = 1 And _day >= 15 Then  ' Abfrage - ob Datum in der 2. Januarhälfte
           TempNight=Jan2TempDay             ' Sollwert -Tagestemperatur- für 2.Januarhälfte im EEPROM der SRAM Variablen zuweisen
           TempNight=Jan2TempNight           ' Sollwert -Nachttemperatur- für 2.Januarhälfte im EEPROM der SRAM Variablen zuweisen
           Day=Jan2Day                       ' Sollwert -Tagesbeginn- für 2.Januarhälfte im EEPROM der SRAM Variablen zuweisen
           Night=Jan2Night                   ' Sollwert -Nachtbeginn- für 2.Januarhälfte im EEPROM der SRAM Variablen zuweisen
    Ich hab's einfach mal sehr üppig kommentiert, damit verständlich wird, was ich vorhabe.
    Nun mein Problem:
    Mit der Bascom/AVR spezifischen Syntax bin ich noch nicht sonderlich vertraut und würde daher gern wissen, ob der oben angegeben Code so richtig ist. Sind wie gesagt, bislang noch alles Trockenübungen (hab noch keine Hardware - wird aber wohl ein ATMEGA 8 werden).
    Ist die "if else if" Abfrage so okay? Komme ich so tatsächlich an die Sollwerte im EEPROM oder muß ich statt 1-8 HexWerte als Adresse angeben? Ist die Abfrage des Tags und des Monats mit "_day" und "_month" so richtig?

    Würde mich sehr über Eure Hilfe/Kommentare freuen,
    Gruß, Tim

  2. #2
    Neuer Benutzer
    Registriert seit
    16.05.2006
    Alter
    49
    Beiträge
    2
    Hallo,

    ist denn niemand hier, der einem Anfänger vielleicht ein wenig auf die Sprünge helfen kann?
    Braucht Ihr vielleicht noch ein paar mehr Infos, um was dazu sagen zu können?
    Ich bin mir ja auch nicht ganz sicher, ob es so richtig war, mit diesem Code-Fragment einzusteigen - aber irgendwo muß man als Anfänger ja nun einmal einsteigen.

    Würde mich sehr freuen, wenn vielleicht doch noch jemand ein wenig dazu schreiben könnte. Insbesondere mit der Datums- und Zeitabfrage fehlt mir einfach der Plan.

    Ciao,
    Tim

Berechtigungen

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