Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Pointer-Hantierung Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Dietmar, Homepage - 24.09.2024 22:05)
 Als Antwort auf Re: Pointer-Hantierung von Laika - 24.09.2024 21:27
Dietmar nutzt:  Open-Micro, Open-Mini, Open-Midi, Open-Macro, Open-Maxi, Open-Mini Station
Hallo Laika,

bei mir funktioniert Dein Programm.

> PS: In der Beschreibung steht unter "ZEIGER (^, @)" auch
> DEFINE ^bezeichner WORD   'Zeiger auf ein Word im USER-RAM definieren
> definiere ich den Zeiger als word ... same procedure as every time

Ich verstehe nicht, was Du meinst.

Hier das Programm:

' Programm von Laika zum Umlaufpuffer mit 6 Einträgen

' http://ccintern.dharlos.de/forum/lesen.php?eintrag=18010

' Das Programm funktioniert.

include "omax.def"

'Einzelwerte für den gleitenden Mittelwert
'Das ist speziell für das Lesen der Solarleisatung
'Sie wird alle 10 sek gelesen und daraus ein "gleitender Mittelwert"
'über eine Minute gemacht, d.h. es werden immer 6 Werte gelesen
'aufsummiert und durch 6 geteilt
define gleitwert      word[24]  'Mittelwert der vergangenen Minute
define gleitwert_1    word[25]
define gleitwert_2    word[26]
define gleitwert_3    word[27]
define gleitwert_4    word[28]
define gleitwert_5    word[29]
define gleitwert_6    word[30]
define floatwert      word[31]
   :
define ^p_gleitwert   word[41]  ' WORD-Zeiger auf BYTE[41]

'---

PrintSpc=ON    'Bei PRINT dezimale Zahlen mit führendem Leerzeichen ausgeben
End2Host=ON    'Bei Programmende (siehe END) gleich in den Host-Modus wechseln

  'Der wird einmal bei Anlauf auf den ersten Wert der obigen Liste gesetzt,
  'rotiert dann immer vom ersten bis letzten Wert, dann wieder zurück auf den ersten
   :
   :
p_gleitwert = ^gleitwert_1
   :
#sekunden_zyklus
   :
  floatwert = floatwert + 1   'Das ist nur ein Hilfswert zur Kontrolle des Abspeicherns
  print
  print "10 sec Zählerwerte lesen"
  gosub gleitwert_aktualisiern

  PRINT gleitwert_1;gleitwert_2;gleitwert_3;gleitwert_4;gleitwert_5;gleitwert_6

  PAUSE 25
  IF RXD THEN END
   :
   :
goto sekunden_zyklus

'----------------------------------------------------------------------
#gleitwert_aktualisiern

'Ein: floatwert: neuer Eintrag in die Liste

  'Der Zeiger p_gleitwert zeigt noch auf den letzten Eintrag,
  'muss also vor dem Eintragen eins weiter geschaltet werden
  p_gleitwert = p_gleitwert + 1
  if p_gleitwert > ^gleitwert_6 then
     p_gleitwert = ^gleitwert_1
  end if

  @p_gleitwert = floatwert
  gleitwert = (gleitwert_1 + gleitwert_2 + gleitwert_3 + gleitwert_4 + gleitwert_5 + gleitwert_6) / 6

return


Freundliche Grüße

Dietmar

Meine Homepage: http://ccintern.dharlos.de

 Antwort schreiben

Bisherige Antworten:

Re: Pointer-Hantierung (von Laika - 29.09.2024 21:39)
    Re: Pointer-Hantierung (von Dietmar - 29.09.2024 21:54)
        Re: Pointer-Hantierung (von Laika - 1.10.2024 18:37)
            Re: Pointer-Hantierung (von Dietmar - 1.10.2024 18:44)
                Re: Pointer-Hantierung (von Laika - 1.10.2024 18:59)
                    Re: Pointer-Hantierung (von Dietmar - 1.10.2024 19:21)
                       Re: Pointer-Hantierung (von Laika - 4.10.2024 11:25)
                       Re: Pointer-Hantierung (von Christian - 1.10.2024 23:26)
                          Re: Pointer-Hantierung (von Dietmar - 1.10.2024 23:54)
                             Re: Pointer-Hantierung (von Laika - 4.10.2024 11:18)
                                Re: Pointer-Hantierung (von Dietmar - 4.10.2024 14:34)
                                   Re: Pointer-Hantierung (von Laika - 4.10.2024 15:28)
                                     Re: Pointer-Hantierung (von Dietmar - 4.10.2024 15:32)