Witam
Mam taki problem..
potrzebuje zrealizowac proste dzialanie, a mianowicie np:
wynik = zmienna * 1,25
nastepnie wynik wraz z ulamkiem zobrazowac na LCD
w jaki sposob to zrobic?
ma ktos jakis pomysl?
bede wdzieczny za wszelkie sugestie/podpowiedzi
pozdr
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięzmienne i dzialania na liczbach ulamkowych
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
Re: zmienne i dzialania na liczbach ulamkowych
Witam
Mam taki problem..
potrzebuje zrealizowac proste dzialanie, a mianowicie np:
wynik = zmienna * 1,25
nastepnie wynik wraz z ulamkiem zobrazowac na LCD
w jaki sposob to zrobic?
ma ktos jakis pomysl?
bede wdzieczny za wszelkie sugestie/podpowiedzi
pozdr
Wystarczy obie strony równania pomnożyć przez 100 - pozbędziemy się w ten sposób części ułamkowej a następnie "wynik" podzielic przez 100 i w ten sposób działanie mamy rozwiązane. Taka operacja jest strawna dla każdego uP.
Jak na '51 to taka procedurka:
; deklaracja zmiennych
CALK EQU 30H ;część całkowita wyniku
DZIES EQU 31H ;część ułamkowa wyniku
ZMIENNA EQU 32H ;twoja zmienna
;początek procedury
x_1_25: MOV A,ZMIENNA
MOV B,#4
DIV AB
ADD A,ZMIENNA
MOV CALK,A ;CALK = część całkowita z ZMIENNA*1,25
MOV DZIES,B ;DZIES = część ułamkowa (tzn. licznik ułamka DZIES/4)
RET
Jako, że mnożysz przez stałą wartość to część ułamkowa będzie zawsze:
1/4 lub 2/4 lub 3/4 lub 0.
Myślę, że wyświetlenie wyniku na LCD jest już proste.
; deklaracja zmiennych
CALK EQU 30H ;część całkowita wyniku
DZIES EQU 31H ;część ułamkowa wyniku
ZMIENNA EQU 32H ;twoja zmienna
;początek procedury
x_1_25: MOV A,ZMIENNA
MOV B,#4
DIV AB
ADD A,ZMIENNA
MOV CALK,A ;CALK = część całkowita z ZMIENNA*1,25
MOV DZIES,B ;DZIES = część ułamkowa (tzn. licznik ułamka DZIES/4)
RET
Jako, że mnożysz przez stałą wartość to część ułamkowa będzie zawsze:
1/4 lub 2/4 lub 3/4 lub 0.
Myślę, że wyświetlenie wyniku na LCD jest już proste.
Re: zmienne i dzialania na liczbach ulamkowych
pierwsza metoda:Witam
Mam taki problem..
potrzebuje zrealizowac proste dzialanie, a mianowicie np:
wynik = zmienna * 1,25
nastepnie wynik wraz z ulamkiem zobrazowac na LCD
w jaki sposob to zrobic?
ma ktos jakis pomysl?
bede wdzieczny za wszelkie sugestie/podpowiedzi
pozdr
dim wynik as single
wynik = 1.25 * zmienna
lcd fusing(wynik, "#######.##")
druga metoda:
dim wynik as word (a może nawet i long ?)
dim tmp as byte
dim napis1 as string*16
dim napis2 as string*16
wynik = 125 * zmienna
napis1 = str(x)
tmp = len(napis1)
tmp = tmp-2
napis2 = left(napis1,tmp)
napis2 = napis2 + "."
incr tmp
napis1 = right(napis1,tmp)
napis2 = napis2+napis1
lcd napis2
trudno powiedzieć króra metoda da krótszy kod
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 13 gości