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.