Naja, 10 Outputs sind auch 10 Aktionen mit 10 Werten, so oder so.
WAS genau meinst du, daß zu lange/kompliziert wäre ?
Hallo,
habe eine Bargraphanzeige deren Balken-Data ich mit Prinbin ausgebe.
nun müsste ich bei 10 Balken wohl schreiben:
Printbin Bar ; Bar ; Bar ; usw. Bar ;(Also 10 mal Bar)
Das geht auch einfacher.Aber wie?
In meinen Code-Auszug wurde für jede Balkenlänge eine Data eingerichtet.
Das frisst zu viel Speicher.
Code:Elseif Poti < 100 Then Restore Bar10 For Count = 1 To 13 Read Bar: Printbin Bar ; Next
Naja, 10 Outputs sind auch 10 Aktionen mit 10 Werten, so oder so.
WAS genau meinst du, daß zu lange/kompliziert wäre ?
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Hallo PicNick
Beim ersten "Entwurf" wurde 10 mal der o.g. Code geschrieben.
Also Ist Poti 10 dann Lese und Schreibe Bar 1
Ist Poti 20 dann lese und Schreibe Bar 2
usw.
Ich habe 10 Data hinterlegt (Bar1-Bar10).Nun wird der Speicher knapp.
Ich wollte nur 1 Data hinterlegen und dann sollte es so aussehen.
Ist Poti 10 dann Lese und Schreibe Bar1
Ist Poti 20 dann Lese Und Schreibe 2 mal Bar1
Ist Poti 30 dann Lese und Schreibe 3 mal Bar1
usw.
Es soll aus den Wert Poti 10 bis 200 die Baranzahl errechnet werden.
Also allas wird eine Bargraphanzeige bis 10 Balken.
Es ist ein Beispiel in Bascom,ich kann aber rechnen soviel ich will
klappt nicht.
dim x as byte
dim y as byte
x=poti/10
for y=1 to x
printbin Bar1
next y
Vor den Erfolg haben die Götter den Schweiß gesetzt
danke,
in Bascom wurde der Anfangswert ,Endwert,Wertstaffelung und Balkenanzahl berücksichtigt.
.Ich dachte auch ich muss runden.Jetzt bin ich
aber schon ein Schritt weiter.
Das Runden ergibt sich aus der Dimensionierung der Werte
Bytes sind nur ganze Zahlen zwischen 0-255
Vor den Erfolg haben die Götter den Schweiß gesetzt
Hallo Vitis,
die Idee ist gut .Der Speicher ist wieder frei,aber es darf der Wert
nur einmal in der Schleife ausgegeben werden.Deine Version gibt
mehrmals den Wert aus .Irgend etwas habe ich falsch gemacht.
Anbei mal den Code
Code:Wait 1 Graphic Wait 3 Loschen Waitms 500 'Interrupts global zulassen Do Screen Waitms 25 Datenpunkt If Poti =< 80 Then Portd.3 = 1 Else Portd.3 = 0 End If Dim X As Byte Dim Y As Byte X = Poti / 5 For Y = 1 To X Call Balken Next Loschen Waitms 70 Loop Sub Graphic Restore Graph For Count = 1 To 14 Read Bar : Printbin Bar; Next End Sub Sub Screen Restore Scre For Count = 1 To 18 Read Bar : Printbin Bar ; Next End Sub Sub Datenpunkt Restore Datenp For Count = 1 To 5 Read Bar : Printbin Bar ; Next End Sub Sub Balken Restore Bar1 For Count = 1 To 4 Read Bar : Printbin Bar; Next End Sub Sub Loschen Restore Los For Count = 1 To 3 Read Bar : Printbin Bar: Next End Sub
Hallo Vitis,
ich noch mal. Das Programm läuft jetzt. Habe die Datenpakete
mit einer kleinen Zeitverzögerung getrennt.Es wird über RS 232
ein Terminal angesteuert.Aber jedes Ding hat seinen Preis
Die Rechenleistung wird jetzt langsamer.Jetzt muss ich mir
was einfallen lassen, das ein Löschen nur bei Wertänderung
erfolgt und nicht in jeder Schleife
Das die Rechenleistung runter geht ist klar,
Du hast ja ne Menge Waits verbaut. In dem Befehl
wartet der µC und macht konkret NIX ausser ner
Schleife runter zählen. Wenn er aber nebenbei
noch was Anderes machen soll währs sinnvoll die
Timer und deren Interrupts zu verwenden
für verzögerte Anzeigen.
Das der Wert dann x-mal geschrieben wird ist auch logisch,
aber genau so hast Du die Funktion ja beschrieben:
Was genau soll Dein Programm denn insgesamt machen ? Was solls am Ende werden?Ist Poti 10 dann Lese und Schreibe Bar1
Ist Poti 20 dann Lese Und Schreibe 2 mal Bar1
Ist Poti 30 dann Lese und Schreibe 3 mal Bar1
Vor den Erfolg haben die Götter den Schweiß gesetzt
Hallo Vitis,
Auf ein Nokia Display wird eine Balkenanzeige Realisiert.
Mein Code sendet Für jeden Balken eine Ziffernfolge über
RS 232 an ein Miniterminal, der dann das Display ansteuert.
Ich wollte einfach Speicher sparen und nicht 10x Balken
hinterlegen.Sondern bei Poti 10 schreibe 1Balken
Poti 20 schreibe 2Balken usw.Vorher war das so:Poti 10 schreibe
Balken1 Poti 20 schreibe Balken2 (10 Balken hinterlegt)
Der Vorteil der Aktion ist, das ich die RS232 Ausgabe des
Prozessors nutze und nicht viele Pins für eine Grafikausgabe brauche.
Lesezeichen