www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

DS18B20 v bascom avr
Pojdi na stran Prejšnja  1, 2
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
MadMax
Član
Član



Pridružen-a: Pet 09 Sep 2005 22:16
Prispevkov: 4743
Aktiv.: 21.36

PrispevekObjavljeno: Sre Maj 01, 2013 8:55 am    Naslov sporočila:   Odgovori s citatom

No, nekaj si se naučil.
1. maso moraš imeti vedno skupno, pa še je pri razmetanih vezjih lahko problem. V bistvu si imel srečo, na ta način bi komot uničil mego.
2. minipin je enostavna, čeprav ima butasto "obratno" logiko za LEDice na njej. Ampak se navadiš.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
HeBird
Član
Član



Pridružen-a: Ned 16 Avg 2009 16:36
Prispevkov: 79
Aktiv.: 0.44
Kraj: Domžale

PrispevekObjavljeno: Čet Apr 03, 2014 6:12 pm    Naslov sporočila:   Odgovori s citatom

Rad bi prebral bite iz nastavitvenega registra z Ds18b20, pa mi ne uspe sestaviti kode, ker ne skapiram funkcij arraya in oklepajev. Nadgradnja tega bi bila, da bi nastavil čip, kakršno ločljivost bi rad imel.
Sama ločljivost tu ne igra vloge, ampak imamo v službi napravo, ki zna komunicirati z 1-wire, ne zna pa obdelovati podatkov in je možno, da kdaj pokaže 2x, 4x ali 8x višjo temperaturo, kot dejansko je.

Poskušam s tem, pa mi ne uspe:

Koda:
Dim Konfiguracija As Byte

Do
...
   1wreset
   1wwrite &HCC
   1wwrite &HB8                                             'Ukažem prenos eeproma v scratchpad
   Waitms 500

   1wreset
   1wwrite &HCC
   1wwrite &HBE                                             'Ukažem branje scratchpada
   Waitms 500

   Konfiguracija = 1wread(4)                                'Zapišem četrti byte v Konfiguracija

Lcd Konfiguracija

...
Loop


Rezultat je tak da mi je na začetku pokazal 37, in se viša za 1 na vsakih nekaj ciklov.

Mi lahko kdo prosim pomaga razložiti, kaj delam narobe, da mi ne prebere pravilno 4. bajta konfiguracijskega registra. Sem že precej primerov pregledal, pa mi res ni jasno.. npr. tale primer mi je sploh "trd oreh", nič mi ni jasno, kaj naredi s temi podatki Brick wall Brick wall Brick wall:

Koda:

...
Sc(1) = 1wread(9) 'read bytes into array
 if sc(9) = crc8(sc(1),8) then
 DG = DeciGrades(sc(9)
...

_________________
Gašper
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
marko11
Član
Član



Pridružen-a: Ned 14 Dec 2003 17:47
Prispevkov: 866
Aktiv.: 3.90
Kraj: Dobrepolje

PrispevekObjavljeno: Ned Jan 28, 2018 3:36 pm    Naslov sporočila:   Odgovori s citatom

Hi

Jaz pa bi rad, da se mi na LCD izpiše vrednost temperature samo v celih številih, brez decimalke. Kako napisati kodo?
Delček kode, ki sedaj izpisuje na pol stopinje natančno:

Koda:


Ts = T
Ts = Ts/2  ; na pol stopinje natančno
Locate 1,1 : LCD "T= " ; Ts
'sedaj izpiše naprimer T= 21.0



lp,marko
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
kose19
Član
Član



Pridružen-a: Sre 02 Mar 2005 19:37
Prispevkov: 1228
Aktiv.: 5.53
Kraj: okolica Kobarida

PrispevekObjavljeno: Ned Jan 28, 2018 5:09 pm    Naslov sporočila:   Odgovori s citatom

Koda:
Read1820:

   1wreset                                                  'reset
   1wwrite &H55                                             '1Wire ukaz za pricakovanje kode
   1wwrite Ar(1) , 8                                        'posiljanje kode
   1wwrite &HBE                                             'ukaz za branje internega RAM-a
   Bd(1) = 1wread(9)                                        'branje RAM-a v polje
   1wreset                                                  'reset

      T2 = Makeint(bd(1) , Bd(2))                           'zruzevanje 1.in 2.byta iz polja v eno spremenjlivko
      T2 = T2 / 2                         'T2 delimo z 2,da iznicimo decimalke

Return

_________________
- Absens, carens -
- Tisti, ki ga ni, bo prikrajšan -
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Branez
Moderator
Moderator



Pridružen-a: Pon 14 Apr 2003 7:21
Prispevkov: 7768
Aktiv.: 34.98
Kraj: Koprivnica HR

PrispevekObjavljeno: Ned Jan 28, 2018 7:26 pm    Naslov sporočila:   Odgovori s citatom

marko11 je napisal/a:
Jaz pa bi rad, da se mi na LCD izpiše vrednost temperature samo v celih številih, brez decimalke. Kako napisati kodo?
Delček kode, ki sedaj izpisuje na pol stopinje natančno:
Išči v Bascom Help pod "Fusing". Imaš možnost z ali brez zaokroževanja.
_________________
The true sign of intelligence is not knowledge but imagination.
Creativity is intelligence having fun!

Albert Einstein
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2
Stran 2 od 2

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 48 dni


Powered by phpBB © 2001, 2005 phpBB Group