U2 ist doch word und damit ganzzahlig. wieso kann ich dann durch einen Real wert (51.2) teilen und bekomme dann einen String ?
Druckbare Version
U2 ist doch word und damit ganzzahlig. wieso kann ich dann durch einen Real wert (51.2) teilen und bekomme dann einen String ?
hi,
richtig, u2 ist ganzzahlig, dennoch kannst du's durch einen real teilen, das ergebnis ist erstmal wieder ein (gerundeter) ganzzahlenwert. der string wird durch die funktion str(ganzzahl) gebildet, die funktion (format) formatiert den string nur nach dem vorgegebenen muster "0,0".
die anweisungen format(str(u2),"0,0") sind nur ineinanderverschachtelt, also mehrere funktionen in einer anweisungszeile, streng übersetzt heist das dann:
SCHREIBE in u3 den FORMATIERTEN wert des STRING von u2 nach dem MUSTER "0,0"
gruss, harry
Hallo zusammen!
Interessiert verfolge ich dieses Thema und habe nun selbst versucht, einen Wert "Speed" aufzulösen und 3-stellig darzustellen. Sinn und zweck ist es, auf einem 4-zeilen Display "große Zahlen" für die Darstellung von "Speed" zu verwenden.
Nun gibt es für "BIGLCD" einen Sub, der mir die notwendigen Sonderzeichen für die großen Zahlen bereit stellt.
Will ich nun BIGLCD : Speed verwenden, wird mir immer nur die erste Stelle von Speed angezeigt. Also dachte ich mir, zerlege ich wie o.g. den Wert Speed und lasse mit jede einzelne Stelle anzeigen. Leider kommt gar nichts auf dem Display!?! Kann mir da jemand weiterhelfen?
Für Eure Hilfe wäre ich wirklich sehr dankbar! :-)
Stefan
Code:Dim Speed As Word
...
Declare Sub Lcdbig ' Funktion zum Schreiben der großen Zahlen deklarieren
Dim Lcdbigspalte As Byte , Lcdbigzahl As Byte
...
...
Lcdbigspalte = 12 : Lcdbigzahl = Speed : Lcdbig
...
...
'################
Sub Lcdbig
' Zeile 1
Locate 1 , Lcdbigspalte
Select Case Lcdbigzahl
Case 0 : Lcd Chr(0) ; Chr(1) ; Chr(2)
Case 1 : Lcd Chr(0) ; Chr(1) ; Chr(32)
Case 2 : Lcd Chr(0) ; Chr(1) ; Chr(2)
Case 3 : Lcd Chr(0) ; Chr(1) ; Chr(2)
Case 4 : Lcd Chr(1) ; Chr(32) ; Chr(32)
Case 5 : Lcd Chr(1) ; Chr(1) ; Chr(1)
Case 6 : Lcd Chr(0) ; Chr(1) ; Chr(2)
Case 7 : Lcd Chr(1) ; Chr(1) ; Chr(1)
Case 8 : Lcd Chr(0) ; Chr(1) ; Chr(2)
Case 9 : Lcd Chr(0) ; Chr(1) ; Chr(2)
End Select
' Zeile 2
Locate 2 , Lcdbigspalte
Select Case Lcdbigzahl
Case 0 : Lcd Chr(31) ; Chr(32) ; Chr(31)
Case 1 : Lcd Chr(32) ; Chr(31) ; Chr(32)
Case 2 : Lcd Chr(0) ; Chr(1) ; Chr(3)
Case 3 : Lcd Chr(32) ; Chr(0) ; Chr(3)
Case 4 : Lcd Chr(31) ; Chr(1) ; Chr(31)
Case 5 : Lcd Chr(31) ; Chr(1) ; Chr(2)
Case 6 : Lcd Chr(31) ; Chr(1) ; Chr(2)
Case 7 : Lcd Chr(32) ; Chr(0) ; Chr(3)
Case 8 : Lcd Chr(31) ; Chr(1) ; Chr(31)
Case 9 : Lcd Chr(31) ; Chr(1) ; Chr(31)
End Select
...usw...
Hallo,
ich bin auf dem Gebiet zwar auch eher ein Newbie, habe aber bei meinem Röhrenamp (Messung der Ströme von 0-500mA/0-500V) keine zusätzlichen (internen) Teiler eingebaut, sondern einfach eine externe Referenz in Form eines LM336 (exakt einstellbar von 4-6V). Durch den internen Teiler von 1024 habe ich dann bei eingestellten 5,10-5,11V EXAKT die richtige (und zu erwartende) Spannung/Strom.
Dazu einfach im ADMUX-Register die 2 Bits REFS0 und 1 auf 0 setzen (AREF off, er nimmt dann weder die interne v. 2,56V noch AVCC), den Ausgang des LM336 am AREF-Pin anschliessen und anschl. genau abgleichen (Spindeltrimmer). Den Kondensator zwischen AREF und GND ruhig belassen, ist immer besser.
Gruß
Dirk
www.tubefreak.de