Es mag zwar lästig zu schreiben sein, aber ich würde dies
Modulstrom2 = Modulstrom * 30
grundsätzlich immer so schreiben
Modulstrom2 = Modulstrom
Modulstrom2 = Modulstrom2 * 30
um die Typwandlung und die Berechnung zu trennen. Es können sonst die tollsten Effekte auftreten.
Array funktionieren so:
Dim Modulstrom_array(48) as byte
Dies erzeugt dir 48 Werte vom Type Byte, die hintereinander im SRAM liegen.
Mit Modulstrom_array(1) sprichst du den ersten Wert, mit Modulstrom_array(2) den zweiten Wert usw. an.
Wenn du jetzt genau zu den glatten 1/4-Stunden abspeichern willst, kannst du das so machen:
Code:
If _sec = 0 Then 'nur zu vollen Minute prüfen
Viertel = _min Mod 15
If Viertel = 0 Then 'nur wenn Minute glatt durch 15 teilbar
Viertel = _hour * 60 '
Viertel = Viertel + _min 'dies berechnet die wievielte Minute am Tag ist
Viertel = Viertel / 15 'dies berechnet die wievielte Viertelstunde am Tag ist
Viertel = Viertel + 1 'um 0.00 Uhr käme 0 heraus, Array Indexe beginnen aber bei 1
Modulstrom_array(viertel) = Modulstrom 'aktuellen Wert von Modulstrom in Array an der entsprechenden Stelle abspeichern
End If
End If
Anzeigen kannst du das ganze Diagramm mit einer kleinen Schleife:
Code:
Offset = 0 'oder einen anderen Wert, wenn du nicht beim ersten Pixel ganz links anfängst
I = 1
Do
X1 = I + Offset
X2 = X1 + 4 'du gehst immer 4 Pixel weiter, richtig?
Y1 = Modulstrom_array(i) 'dies ist der Anfangspunkt der Linie
Incr I 'nächstes Array Element
Y2 = Modulstrom_array(i) 'dies ist dann der Endpunkt der Linie
Line(x1 , Y1) -(x2 , Y2) , 255
Loop Until I = 48
Fertig.
Edit: Ich habe noch einen Fehler behoben (das geht nicht: If _min Mod 15 = 0 Then...)
Gruß
Rolf
Lesezeichen