Problem z DS1820

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
radiator
-
Posty: 18
Rejestracja: 30 gru 2006, 17:29
Lokalizacja: Ruda Śląska

Problem z DS1820

Post autor: radiator » 12 kwie 2007, 11:52

Od jakiegoś czasu pracuję nad zegarkiem z termometrem - ma to być dodatkowo urządzenie które będzie sterowało oświetleniem ... - inteligentny dom.

Mam problem z napisaniem oprogramowania do odczytu temp z kostki ds1820 i wyświetlenia wyniku na wyświetlaczach 7seg.

Poniżej zamieszczam procedury które opracowałe
Odczyt temp:

Kod: Zaznacz cały

Gettemp:
1wwrite &HCC
1wwrite &H44

Waitms 750 ' to waitms później zastąpię liczeniem czasu przez licznik

1wreset
1wwrite &HCC
1wwrite &HBE
Bd(1) = 1wread(9)
1wreset     
                                       
T = Makeint(bd(1) , Bd(2))
Wartosc = Low(t)                                                   ' znak dodatni bądź ujemny
Temperatura = High(t)
Tjed = Temperatura Mod 10                                   ' wartosc po przecinku temperatury
Temperatura = Temperatura - Tjed
Temperatura = Temperatura / 10
Tdzies = Temperatura Mod 10                                 ' wartosc jednostek temperatury
Temperatura = Temperatura - Tdzies
Tset = Temperatura / 10

return
Nie wiem czy prawidłowo doszłem do sposobu rozdzielenia temp na cyfry

a a tutaj pokazanie temp:

Kod: Zaznacz cały

Select Case Mux
Case 0:
Porta = Lookup(tjed , Cyfry)
Portd.7 = 1
Portc.2 = 0
Portc.3 = 0
Portc.4 = 0
Case 1:

...
...

end select
Na wyświetlaczach widnieje napis:

25.5

A co do znaku + czy - to na razie pominąłem

Bardzo proszę o pomoc.


-------
Kody programów zamykamy w tagi CODE! ZbeeGin
Ostatnio zmieniony 01 sty 1970, 1:00 przez radiator, łącznie zmieniany 1 raz.

ODPOWIEDZ