Hallo Ich habe eine Single Variable (Luftfeuchte ) Anzeige auf Lcd Will die jetzt seriell ausgeben da reicht mir die Feuchtigkeit ohne Kommazahlen nun versuche ich jetzt das Single in ein Byte umzuwandeln und das zu übertragen (will mir die umwandlerei H-Byte ,L-Byte sparen) Hatt da von euch einer eine einfache Lösung ? Mfg Wolfi
SINGLE CONVERSION When you want to convert a SINGLE into a byte, word, integer or long the compiler will automatic convert the values when the source string is of the SINGLE data type. integer = single You can also convert a byte, word, integer or long into a SINGLE by assigning this variable to a SINGLE. single = long Beste Gruesse, André
Tja das dachte ich auch (ist in C genauso) aber das klappt nicht . Wennn ich zB eine Luftfeuchte von 74,56% habe dann die single variable (feuchte) in eine Byte Variable(feuchte 2) schiebe dann schwankt die Feuchte zwischen 52 und 55 hin und her . Feuchte = Feuchte 2 was kann das denn sein Gruß Wolfi
Poste doch bitte mal den ganzen Code. Da muss etwas anderes schieflaufen, denn das Typecasting funktioniert (gerade mit deinem obigen Beispiel getestet). Ich hoffe deine Variablennamen enthalten nicht wirklich Leerzeichen, wie im Beispiel *g. Beste Gruesse, André
hier mal mein Code vielciht kann man ja was daraus lesen warums nicht
Funktioniert
Dim F As Word
Dim Feu As Single
Dim Feu_ As Single
Dim Comp As Single
Dim Comp1 As Single
Dim Feuchte As Byte
Dim T As Word
Dim Temp As Single
Dim A As Byte
Cls
Anfang:
'
Config Adc = Single , Prescaler = Auto
Start Adc
Do
F = Getadc(0)
Feu = F * 0.48875
'5 Volt / 1023=0,0048875
Feu_ = Feu / 100
Waitms 5
Comp = Feu_ / 5
Comp1 = Comp - 0.16
Feu_ = Comp1 / 0.0062
Feuchte =Feu_
Cls
Lcd " Rel" ; Fusing(feu_ , "#.##") ; " %"
Lowerline
Lcd Feuchte;
Waitms 600
Goto Anfang
Ich vermute, du hast den Codefetzen einfach aus deinem Projekt herausgerissen, da mir das alles doch sehr unvollstaendig vorkommt. An sich voellig wertlos, denn dieser Teil des Programms funktioniert wunderbar. Bitte nochmal alles posten, inkl. der Initialisierungen. Ansonsten ist da ein Do ohne Loop. Nimmt man das Do raus, wird bei jedem Durchlauf der ADC initialisiert und gestartet - Schwachsinn. Schwankungen koennen in diesem Teil des Programms nur durch externe Schwankungen verursacht werden, d.h. das am ADC anliegende Signal schwankt schon. Beste Gruesse, André
Guten Morgen Danke für deine Antwort . Das ist schon mein ganzer Code hab da nur noch ein loop ganz unten gehabt das hab ich rausgeschmissen und das Do vergessen dazu, Klar Funktioniert das Programm einwandfrei, die Luftfeuchte wird ordungsgemäß ausgegeben aber dann diese in ein byte umzuwandeln klappt nicht !wiegesagt bei 75,74 %luftfeuchte umgewannelt (In ein Byte) gibt 52...55 (anzeige zweitezeile LCD) klar schwankt die Luftfeuchte im Kommabereich das ist nicht schlimm es Funktioniert nur die Umwandlung nicht .(Feuchte =Feu_ ) Gruß Wolfgang
Wie sollte das gehen? Wenn es im Simulator funktioniert, muss es auch auf der ZielHW laufen. Was mir als erstes auffaellt: Kein $regfile, kein $crystal, kein config LCD. Auch wenn du das ueber den Wizard richtig eingestellt hast, ist es besser, das explizit ins Programm zu schreiben. Weiterhin solltest du testweise beide Stacks und die Framesize auf irgendwas groesser 70 stellen (auch wenn ich mir kaum vorstellen kann, dass das der Verursacher ist. Eher die HW. Lass dir am besten mal den ADC Wert mit aufs LCD ausgeben. Beste Gruesse, André
Benenne testweise auch die Variable feu_ mal anders. Da gibts bei Bascom auch hin und wieder Probleme. So darf man zb keine Konstante namens fmul festlegen und gleichzeitig Multiplikationen im Programm nutzen. Beste Gruesse, André
Danke André jetzt klappts war die Variable Freu_ obwohl das andere eindwandfrei Funktioniert hatnur das verschieben in eine Variable hat er nicht mögen Danke noch mal Wolfgang
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.