Das ARRAY grundlegende Anfänger Fragen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Hallo djmsc,
      Dein ergänzender Code ab Zeile 7. scheint zu funktionieren, muß ich gleich mal weiter testen, man das war den auch eine schwere Geburt.

      Ich vermute das es doch nicht ganz so einfach ist, sich über ein Thema von unterschiedlichen Richtungen zu nähern, ich mit
      meinen "gefährlichen Halbwissen" und harten Coder auf der anderen Seite.
      Wenn alles hübsch ist gibt es dann auch noch ein Bild

      Danke an alle die mich bis hier unterstützt haben tilltec
    • Es ist halt so, dass man beim Programmieren auf ca. 1017 (grobe Schätzung) Wegen zum Ziel kommt. Das kann dann schon mal verwirrend sein.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • So, hier schon mal ein Bild mit dem neuen Code.Wie zu sehen ist, ist der Anfangswert für das Array mit "0" etwas ungünstig.
      Der obere Rahmen meiner Grafik wird leider mit dem Löschen der Pixel mit gelöscht. Ich bräucht halt einen Anfangswert von
      10 oder größer.

      Diagramm1.jpg

      tilltec
      @ tschoeatsch, habe erstmal die 80 jährigen Extremwerte weggelassen a_21_6a45df93
    • BASCOM-Quellcode

      1. If Pa(1) = 0 Then
      2. X = 1
      3. Else
      4. X = 600
      5. End If
      6. If X = 600 Then
      7. Line(0 , 0) -(126 , 0) , 255 ' horizontal upper line, als ersatz für ' 'die gelöschte linie
      8. End If
      9. If Z1 = X Then 'alle X sec nach zeit1 springen und ' ' 'dort ein wert in das array schreiben
      10. Gosub Zeit1
      11. End If
      Alles anzeigen

      das sieht wieder ma lgut aus, habe aber auch gerade die Brain.exe bemüht.

      Meine Idee: testen ob Pa(1) = 0 ist, bei 0-noch ein Wert gespeichert also mit X1(zeit 1sec) schnell das Array voll machen, ist der letzt Platz voll wird Pa(1) > 0
      jetzt im lagsammen Modus weiter machen, und zeichne mir mein gelöscht Linie wieder ein.

      Werde Deine Idee morgen mal testen

      tlltec
    • Du kannst aber auch nur die Werte ins Display schreiben die ungleich 0 sind

      BASCOM-Quellcode

      1. Zeit1:
      2. For Zeiger = 1 To 119
      3. Pset Zeiger , Pa(zeiger ) , 0
      4. Pa(zeiger) = Pa(zeiger + 1)
      5. Next Zeiger
      6. Pset 120 , Pa(120) , 0
      7. Pa(120) = A
      8. For Zeiger = 1 To 120
      9. If Pa(zeiger) <> 0 Then Pset Zeiger , Pa(zeiger) , 1
      10. Next Zeiger
      11. Z1 = 0 'Zeitzähler auf null setzen
      12. Return
      Alles anzeigen
      Eine Lösung habe ich nicht, aber mir gefällt Ihr Problem.
    • Hallo djmsc,
      sehr praktisch Dein Code, aber Messwerte mit 0 kommen hier nicht vor (ja beim einschalten), deshalb meine Überlegung, wenn ein Wert 0 ist wurde das Gerät gerade eingeschaltet, also schnell das Array füllen um ein ansehliches Diagramm zu zeichnen, was liegt näher als gleich den aktuellen Messwert zu nehmen.

      Diagramm2.jpg

      Hier auf dem Bild kann man schön sehen das der Luftruck über Nacht gestiegen ist(Zeitfenster 10min/Pixel), wir werden heute einen schönen Tag haben.



      danke tilltec
    • Was hast du eigentlich für einen Sensor?


      tilltec schrieb:

      wenn ein Wert 0 ist wurde das Gerät gerade eingeschaltet, also schnell das Array füllen um ein ansehliches Diagramm zu zeichnen, was liegt näher als gleich den aktuellen Messwert zu nehmen.
      Kannst du natürlich machen. Aber in der Endausbaustufe wirst du ja eine Messwerte vor dem Abschalten gespeichert haben und beim Wiedereinschalten aus dem eprom laden.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • nö, nö, ich habe fertig, das könnte aber für ein kurz vorher fertig gewordenes Projekt interessant sein, auch ein Drucksensor, aber für unter Wasser (Regensammler),
      ist doch dieser dreck´s-Sensor nach 16 Jahren einfach defekt, so eine Frechheit. Und nach 16 Jahren gibt es auch an jeder Ecke Ersatzteile fü das System. a_20_e8d7189d

      Was ich noch mache ist ein Alram für stark fallenden Luftdruck einrichten, so mit blinken und pipsen, dann sollte es mit dem Programm gut sein.
      Jetzt kommt noch die Spannungsversorgung dran,mit normalen 7805 kommt man hier nicht weit, möcht eine Offset-Kompensation für den Sensor machen, da der nutzbare Messbereich vom Sensor 3,576 bis 4,501V ist (dast ist der Bereich zwischen dem min und max der letzten "soll ich das jetzt schreiben?" a_27_b277ca12 80Jahren). Messbereich nach der Anpassung dann 0,576 bis 1,501V, angepasste externe Vreff (wir wohl ca 1,50V werden).

      danke tilltec
    • tilltec schrieb:

      das Array füllen um ein ansehliches Diagramm zu zeichnen, was liegt näher als gleich den aktuellen Messwert zu nehmen.
      Ich würde das Array beim Einschalten mit dem aktuellen Messwert füllen, sonst wären das ja Fake-Daten ;)

      tilltec schrieb:

      Hier auf dem Bild kann man schön sehen das der Luftruck über Nacht gestiegen ist(Zeitfenster 10min/Pixel), wir werden heute einen schönen Tag haben.
      Jetzt schaust du, welchen Min-Max Bereich dein Array hast und skalierst das in das Diagramm.
      Also Min ist z.B. 30 und max ist 35, dann machst du den Bereich von 25 bis 40 und rechnest die Daten entsprechend um (Offset und Faktor)
      Dann sieht das Diagramm ansprechender aus, allerdings brauchst du dann auch eine Skalenbeschriftung.
    • nieder mit den Fake-Daten !!!

      das mit den skalieren hört sich sehr gut an, aber praktisch sieht das wahrscheinlich nicht gut aus. Wenn ich jetzt dort größere Änderungen habe wird meine
      Darstellung zerrissen, ich stelle ja immer nur ein Pixel dar, wenn aber Zwischenraum von den Pixeln automatisch aufgefüllt (interpoliert) werden, ja dann.......

      Ja, dann besorge ich mir ein größeres Dislay.


      danke tilltec
    • Da Dein Programm ja fleißig Daten sammelt kannst Du Dir ja ein zweites Array anlegen, ich welches Du beispielsweise Mittelwerte oder Min / Maxwerte einer längeren Zeitperiode ablegst. Im Programm kannst Du dann auf Tastendrück den Verlauf über einen längeren Zeitraum visuell darstellen. (beispielsweise Entwicklung der letzten Woche / Monat oder des Jahres). Solche "Sammeldaten" können auch in´s EEprom gelegt werden, da hier ja nicht ständig geschrieben wird. Oder aber auf eine SD- Karte. Wär ja schade, wenn die gemessenen Werte für spätere Auswertungen (beispielsweise am PC) nicht mehr verfügbar wären, weil sie Dein Programm ständig überschreibt.

      Jetzt wo Du diese Hürde genommen hast, ist das auch nicht mehr schwer.

      Gruß Christian
      Wenn das die Lösung ist, möchte ich mein Problem wieder haben.
    • Hallo Christian,
      SD-Karte wäre schon cool, aber ich habe so den Verdacht, das man langsam den Spaß-Hobby Bereich verlässt, was bedeutet ich bräuchte eine VOLLVERSION von Bascom.
      Aber eine schöne Idee, die Daten bräuchten dann aber noch ein Zeitstempel, also noch eine RTC ran hängen ............ a_68_7bac02a1 mir wird heiß.


      Hallo Michael,

      Linien???, die meine Pixel verbinden würden, oder nur gleich eine Darstellung mit Linien?, wenn das vom Code kein Overkill ist, könnte man ja 1-2 sec darüber nachdenken.
      Gibt es dafür Beispiele zum anschauen?,

      danke tilltec
    • Unterteile deine 120 pixel in der Länge auf 24 Stunden, dann hast du 5 Pixel pro Stunde. Jetzt alle Stunde messen und die Messpunkte, die jetzt 5 Pixel in x-Richtung Abstand haben mit einer Linie verbinden.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • tilltec schrieb:

      Linien???, die meine Pixel verbinden würden, oder nur gleich eine Darstellung mit Linien?, wenn das vom Code kein Overkill ist, könnte man ja 1-2 sec darüber nachdenken.
      Gibt es dafür Beispiele zum anschauen?,
      ja, Linien, aber wie gesagt, versuch erst mal die zugrunde liegenden Zusammenhänge richtig zu verstehen.
      Die Anpassung der Y-Achse und Verbindung der Punkte mit Linien kannst du immer noch machen.
      Meines Wissens hatte ich bereits ein Beispiel verlinkt.


      tilltec schrieb:

      was bedeutet ich bräuchte eine VOLLVERSION von Bascom.
      Ja, klar, die haben wir alle.