Gast
#90509
hallo leute, nach dem ich nun seit tagen immer mit ärgerlichen problemen zwecks division von zahlen rumschlagen mußte, habe ich mal einen test gemacht. mein atmega16 bord mit 20x4 lcd. ergebnis: um so schneller der timer läuft,um so schlimmer gehts den single-variablen bsp (code stark vereinfacht) dim x as word dim s1 as single dim s2 as single dim s3 as single dim s4 as single setze counter auf 0,001sek if x=500 then 'alle 500ms soll er anzeigen x=0 ' wieder auf 0, für die nächsten 500ms Locate 1,1 Lcd S1 Locate 2,1 Lcd S2 Locate 3,1 Lcd S3 Locate 4,1 Lcd S4 end if counter: ' alle 0,001 sek wird der wert um 1 erhöht incr x incr s1, s2,s3,s4 wer jetzt denkt, daß nun alle 500ms die 4 zahlen jeweils um 500 erhöht angezeigt werden, der irrt. ca 4 sek nach start sieht das lcd wie von viren befallen aus, nur wirre zeichen. ändere ich in der variablen deklaration single in long um, klappt alles wie gewollt. schönes syncrones zahlenballett setze ich den timer auf 0,01 (also nur noch ein zehntel so schnell) dann kann ich sehen, daß die single-zahlen hochgezählt werden. wenn auch nicht als ganze zahlen, sondern mit teilweise 2-5werten nach dem komma. nach einiger zeit sehe ich, daß besonders bei den zeilen 2-4 die zahlen plötzlich 8 stellig werden und wie wild in ihrer wertigkeit hin und herspringen. nur die erste zeile/zahl macht schön normal weiter. das problem das ich habe, daß ich verschiedene berechnungen durchführe. und dabei sind single-zahlen ein muß, da ich kommastellen brauche. diese ergebnisse fangen aber nach einiger zeit an "rumzuspinnen" und haben nicht den wert, den sie haben müßten. dim a as single dim b as word b=10 a= b/500 macht schon mal probleme woran kann das liegen? wenn ich mit ganzen zahlen arbeite, geht es alles prima. nur ich hab j a dann keine genauigkeit mehr wer kann mir da helfen?