Witam :)
Wiem, że niedawno był już temat związany z DS18B20, jednak mój problem jest innej natury więc postanowiłem założyć swój wątek.
Robię właśnie zegarek z wyświetlaczem 7-segmentowym na PCF8583 i DS18B20 jednak mam z nim pewien problem. Przy wyświetlaniu temperatury mogę jedynie wyświetlać część całkowitą temperatury, z tą ułamkową mam już problem.
To co chcę osiągnąć, to posiadanie w dwóch zmiennych typu Byte (calosci, ulamek) informacji o temperaturze tzn:
24.3 *C to byłoby calosci=24 ulamek=3
15.7 *C to calosci=15 ulamek=7
W ten sposób byłoby mi łatwo wyświetlać temperaturę korzystając z napisanego już przeze mnie kodu do wyświetlania godziny. Czy mógłby mi ktoś z tym pomóc? :)
Odp. [BASCOM] DS18B20 - część ułamkowa temperatury
Nie pokazałeś żadnego kawałka kodu więc nie można Ci podpowiedzieć jak można to zrobić jeszcze lepiej, ale możesz zrobić tak. Instrukcja
MOD
nie tylko w BASCOM zwraca resztę z dzielenia(możesz wpisać w Google "Modulo"). Jeśli więc Twoją wartość temperatury pomnożysz razy 10 będziesz miał przykładowo 243. Jeśli teraz wyciągniesz z tego Modulo(tu liczba przez którą dzielimy) to jeśli podzielisz przez 10 reszta wyniesie 3.(24 dziesiątki i reszta 3)
Normalnie Single trzyma przecinek którego Ty nie potrzebujesz i połowy rzeczy stad mógłbyś się pozbyć na etapie odczytu z DS`a. niemniej powyższy kod powinien działać.
Przemyśl to. Pomnóż dane prędzej a Single bedzie niepotrzebna. Działania na Single wymagają dużych nakładów.
Edit. ..a to jest chyba to co Cię zainteresuje
BARTek
Moja strona
Wielkie dzięki! Szczególnie
Wielkie dzięki! Szczególnie ten drugi kawałek kodu mi pomógł :) Jednak zamiast zmiennej Byte trzeba użyć Word bo np przy 26,0 *C wychodzimy poza zakres tej zmiennej (260 a zmienna może mieć max 255). W każdym razie odczyt temperatury już działa, dziękuję :)
Re: DS18B20 - część ułamkowa temperatury - pytanie poboczne
Ja mam takie poboczne pytanie. Czemu służy ten zapis ?
Minus = T.15
Nie chodzi mi konkretnie w tym przypadku tylko ogólnie czemu służy zapis po kropce ?
Tyle czasu piszę w bascomie a nie mam pojęcia do czego to jest.
Moja strona w powijakach
Odp.Re: DS18B20 - część ułamkowa temperatury - pytanie poboczne
Tutaj jest to szesnasty bit licząc od zera i od prawej strony. Normalnie w bajcie numer bitu licząc od najmłodszego.
BARTek
Moja strona
Re: DS18B20 - część ułamkowa temperatury - pytanie poboczne
Czyli po kropce odczytujemy wartość z danego miejsca danej zmiennej lub danego portu ?
Moja strona w powijakach
Odp. [BASCOM] DS18B20 - część ułamkowa temperatury
No tak. Najlepsze jednak są kombinacje tego ze zmiennymi.
Ustawi bez większych komplikacji cztery najstarsze Bity/Piny w porcie D nie ruszając tych od 0 do 3 :D
...i inne takie wariacje na temat. W zmiennych te numery po kropce to tak jak by patrzeć na ich zapis &B
BARTek
Moja strona