Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Picbasic pitanja za sve sto mi nije jasno

[es] :: Elektronika :: Mikrokontroleri :: Picbasic pitanja za sve sto mi nije jasno

Strane: < .. 1 2 3 4 5 6 7 8 ... Dalje > >>

[ Pregleda: 109669 | Odgovora: 530 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Sepa011

Član broj: 161918
Poruke: 1817
109.106.236.*



+28 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno24.01.2010. u 11:46 - pre 173 meseci
Code:
Temperature = (((Temperature >> 1) * 100) - 25) + (((Count_Per_C - Count_Remain) * 100) / Count_Per_C)


Temperature >> 1

Ovime se vrsi pomeranje (siftovanje) promenljive Temperature u desno za jedno binarno mesto tako da 21 postaje 20 .. i tako redom. Time je dobijena celobrojna vrednost temperature.

Count_Per_C - Count_Remain

sluzi da se dobije decimalni deo temperature sa vecom rezolucijom od same rezolucije DS1820 senzora (ja vise volim DS18B20 posto ima vecu rezoluciju - programabilno 9, 10, 11 ili 12 bita)

Evo ti i jedan slican/malo drugaciji program sa 2 komada DS18B20

Code:
'* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
'* Universal thermostat -25/+75 C.  by R.T.G. van Steenis                  *
'* Digital thermostat (080090-11) from Elektor july_august 2008            *
'* Compiler : PicBasic Pro 2.44                                            *
'* B0 = Mode switch in (In)            A0 = LCD Enable    (Out)            *
'* B1 = + switch in    (In)            A1 = LCD RS        (Out)            *
'* B2 = - switch in    (In)            A2 = "Warm" Output (Out)            *
'* B3 = Not connected  (Out)           A3 = "Cold" Output (Out)            *
'* B4 = LCD Bit 4      (Out)           A4 = DQ DS1820     (In)             *
'* B5 = LCD Bit 5      (Out)                                               *
'* B6 = LCD Bit 6      (Out)                                               *
'* B7 = LCD Bit 7      (Out                                                *
'*                                                                         *
'*                 modify by Niculescu Dan                                 * 
'*                                                                         *
'*         DUAL THERMO 2xDS18B20 ; PIC 16F628A  ; LCD 2x16                 *
'* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

TRISA= %11011111                        ' RA5=Outputs Rest=Input
TRISB= %00000000                         ' RB0..RB7=Outputs
CMCON=7                                 ' Disable comparators

DEFINE LCD_DREG PORTB                   ' LCD on port B
DEFINE LCD_DBIT 4                       ' Data bits B4..B7
DEFINE LCD_RSREG PORTB                  ' RS on PORTB
DEFINE LCD_RSBIT 3                      ' RS on B3 
DEFINE LCD_EREG PORTB                   ' E on PORTB
DEFINE LCD_EBIT 1                       ' E on B1
DEFINE LCD_BITS 4                       ' LCD 4 bit mode
DEFINE LCD_LINES 2                      ' 2 line LCD display

Temperature1     Var    Word        ' Temperature storage Sensor1
Temperature2     Var    Word        ' Temperature storage Sensor2
TempC            Var    Word
Float            Var    Word
TargetTemp         Var    Word        ' Desired Temperature
Hyst             Var    Word        ' Hystereris
V                 Var    Word        ' Var. for display
V2                 Var    Word        ' Var. for display
B1               Var    Byte        ' Byte for TargetTemp calculation 
B2               Var    Byte        ' Byte for TargetTemp calculation
Sign             Var    Byte        ' +/- sign
Mode              Var    Byte        ' 0=Temp. display, 1=Set Temp, 2=Set Hysteresis
DQ                 Var    PORTA.2        ' One-wire data pin
Twist            Var    Bit
Twist2           Var    Bit
Dummy            Var    Byte

DS18B20_9bit     CON %00011111 ; 93.75ms, 0.5°C
DS18B20_10bit     CON %00111111 ; 187.5ms, 0.25°C 
DS18B20_11bit     CON %01011111 ; 375ms,   0.125°C
DS18B20_12bit     CON %01111111 ; 750ms,   0.0625°C  (default)
DS18B20_1_12bit CON %01111111 ; 750ms,   0.0625°C  
DS18B20_2_12bit CON %01111111 ; 750ms,   0.0625°C  

DATA 46, 224, 20                        ' Temp MSB, TEMP LSB, Hysteresis DIV 10

PORTA.5 = 0                               ' Warm Output Low
PORTA.0 = 0                               ' Cold Output Low
Mode = 0                                  ' Temperature display mode  
Twist = 0
Twist2 = 0

Pause 500
low portb.2
LCDOUT $FE, 1, $FE, $0C                 ' Clear display, cursor off
Pause 250

Read 0, B1                              ' Read TargetTemp MSB
Read 1, B2                              ' Read TargetTemp LSB
TargetTemp = B1 * 256 + B2                    ' Calculate TargetTemp value (Default=20.0 C.)
Read 2, B1                              ' Read Hysteresis 
Hyst= 10 * B1                              ' Calculate Hysteresis value (Default= 2.0 C.)  

 OWOut DQ, 1, [$55, $28,  $4F, $DF, $A0, $01, $00, $00, $7C, $4E, $FF, $FF, DS18B20_12bit] ' Init Sensor 1
 OWOut DQ, 1, [$55, $28,  $4F, $DF, $A0, $01, $00, $00, $7C, $48] 
 OWOut DQ, 1, [$55, $28,  $4F, $DF, $A0, $01, $00, $00, $7C, $B8] 
 OWOut DQ, 1, [$55, $28,  $4F, $DF, $A0, $01, $00, $00, $7C, $BE] 
Pause 1000
 OWIn DQ, 0, [Temperature1.Byte0, Temperature2.Byte1]
LcdOut $FE, $80,  "Senzor1 INIT OK" 
Pause 500


 OWOut DQ, 1, [$55, $28,  $80, $5E, $BF, $01, $00, $00, $63, $4E, $FF, $FF, DS18B20_12bit] ' Init Sensor 2
 OWOut DQ, 1, [$55, $28,  $80, $5E, $BF, $01, $00, $00, $63, $48] 
 OWOut DQ, 1, [$55, $28,  $80, $5E, $BF, $01, $00, $00, $63, $B8] 
 OWOut DQ, 1, [$55, $28,  $80, $5E, $BF, $01, $00, $00, $63, $BE] 
Pause 1000
 OWIn DQ, 0, [Temperature2.Byte0, Temperature2.Byte1] 
LcdOut $FE, $C0,  "Senzor2 INIT OK" 
Pause 1000


MainLoop: 
 If PORTA.6 = 0 then                      ' Mode switch pressed
  Pause 50                              ' Debounce 
LcdOut $FE, 1
 LcdOut $FE, $8F, "*"                   ' Show that command is accepted 
  If PORTA.6 = 0 then MainLoop            ' Wait until button is released  
  Mode = Mode + 1                           ' Increment mode
  If Mode = 2 then                        ' Save Target Temperature (Mode1 -> Mode2)
   Write 0, TargetTemp / 256            ' TargetTemp MSB
   Write 1, TargetTemp MOD 256          ' TargetTemp LSB
  EndIf
  If Mode > 2 Then                      ' Save Hysteresis (Mode 2 -> Mode 0) 
   Mode=0                           ' Only 0, 1, 2 are valid
   Write 2, Hyst / 10                   ' Divide Hyst value to fit in Byte
  EndIf
 EndIf

 If Mode = 1 then
  LcdOut $FE, $80, "SET TEMPERATURE "   ' Show function
  V = TargetTemp                          ' TargetTemp in V  
  Gosub SelectSign                      ' Select +/blank/- 
  Gosub DTemp                           ' Display Target Temperature
  If (PORTA.7 = 0) Or (PORTA.3 = 0) then    ' Up or Down button pushed
   If PORTA.7 = 0 then                    ' Down button 
    If TargetTemp > 7500 then           ' Not lower than -25 C. (10000-MinTemp * 100)
     TargetTemp = TargetTemp - 25           ' Decrease temperuture with 0.25 C.
    EndIf
   EndIf
   If PORTA.3 = 0 then                    ' Up button
    If TargetTemp < 17500 then          ' Not higher than 75 C. (10000+MaxTemp * 100)
     TargetTemp = TargetTemp + 25           ' Increase temperature with 0.25 C.
    EndIf
   EndIf
   GoSub SetTargetTemp                  ' Display TargetTemp and delay 0.25 Sec.
  EndIf
 EndIf 

 If Mode = 2 then                         ' Set Hysteresis  
  LcdOut $FE, $80, "SET HYSTERESIS "    ' Show function
  Sign = " "                              ' No sign  
  V = 10000 + Hyst                         ' Set value for V  
  Gosub DTemp                           ' Display Hysteresis
  If (PORTA.7 = 0) Or (PORTA.3 = 0) then    ' Up or down button pushed  
   Sign = " "                             ' No sign for Hysteresis
   If PORTA.7 = 0 then                    ' Down button
    If Hyst > 10 then Hyst = Hyst - 10      ' Not less than 0.1 C.
   EndIf
   If PORTA.3 = 0 then                    ' Up button
    If Hyst < 1000 then Hyst = Hyst + 10    ' Not more than 10.0 C.
   EndIf 
   V = 10000 + Hyst                        ' Set value for V
   Gosub DTemp                          ' Display Hysteresis 
   Pause 250                            ' Delay 0.25 Sec.
  EndIf
 EndIf 

 If Mode > 0 then Mainloop              ' Setting TargetTemperature or Hysteresis


Output DQ                             ' Make Pin Output
 DQ = 0                              ' OneWire line Low
 PauseUs 480                            ' Keep down for 480 µS  
 Input DQ                               ' Make Pin Input
 PauseUs 70                             ' Wait 70 µS
 If DQ = 1 then                           ' No presence pulse from DS1820   
  LcdOut $FE, $1, "** No sensor! **"    ' Show message
  Pause 500                             ' Wait 0.5 Sec. 
  Goto MainLoop                         ' Check again
 EndIf

'===================================================================================================

Main :
Part1:    
 OWOut DQ, 1, [$55, $28,  $4F, $DF, $A0, $01, $00, $00, $7C, $44] ' Start temp. conversion Sensor1

WaitLoop: 
While not DQ
Wend

OWOut DQ, 1,  [$55, $28,  $4F, $DF, $A0, $01, $00, $00, $7C, $BE]
Pause 500
OWIn DQ, 0, [Temperature1.Byte0, Temperature1.Byte1]
If Temperature1.15 then       
  Temperature1 = ~Temperature1 +1
  Twist = 1
Endif
 
Dummy = 625 * Temperature1
TempC = DIV32 10 
TempC = (Temperature1 & $7FF) >> 4
Float = ((Temperature1.Lowbyte & $0F ) * 25 )>> 2
Temperature1 = TempC * 100 + Float
If Twist then
  V = 10000 - Temperature1               ' 25 C=12500  0 C=10000  -10 C=9000 
  Twist = 0
 else
  V = 10000 + Temperature1
 EndIf
 If V >= 10000 then                     ' Above 0 C.      
  Temperature1 = V - 10000                   
 Else                                   
  Temperature1 = 10000 - V                  ' Below 0 C. 
 EndIf
 GoSub SelectSign                       ' +/blank/- Sign 
 GoSub DisplayTemp                      ' Temperature to LCD

'===================================================================================================
Part2 :    
 OWOut DQ, 1, [$55, $28,  $80, $5E, $BF, $01, $00, $00, $63, $44]  ' Start temp. conversion Sensor2

WaitLoop2: 
While not DQ
Wend

OWOut DQ, 1,  [$55, $28,  $80, $5E, $BF, $01, $00, $00, $63, $BE]
Pause 500
OWIn DQ, 0, [Temperature2.Byte0, Temperature2.Byte1]
If Temperature2.15 then       
  Temperature2 = ~Temperature2 + 1
  Twist2 = 1
Endif
 
Dummy = 625 * Temperature2
TempC = DIV32 10 
TempC = (Temperature2 & $7FF) >> 4
Float = ((Temperature2.Lowbyte & $0F ) * 25 )>> 2
Temperature2 = TempC * 100 + Float
If Twist2 then
  V2 = 10000 - Temperature2              ' 25 C=12500  0 C=10000  -10 C=9000 
  Twist2 = 0
 else
  V2 = 10000 + Temperature2
 EndIf
 If V2 >= 10000 then                    ' Above 0 C.      
  Temperature2 = V2 - 10000                   
 Else                                   
  Temperature2 = 10000 - V2                 ' Below 0 C. 
 EndIf

 GoSub SelectSign                       ' +/blank/- Sign 
 GoSub DisplayTemp                      ' Temperature to LCD


Goto MainLoop                    ' Do it forever

' SUBROUTINES:
'===================================================================================================
SelectSign:
 If v = 10000 then                      ' Temperature = 0 C.
  Sign = " "                           ' No sign
 Else 
  If v < 10000 then                      ' <> 0
   Sign = "-"                          ' Temperature below 0 C.     
  Else
   Sign = "+"                          ' Temperature above 0 C.
  EndIf
 EndIf

 If v2 = 10000 then                     ' Temperature = 0 C.
  Sign = " "                           ' No sign
 Else 
  If v2 < 10000 then                      ' <> 0
   Sign = "-"                          ' Temperature below 0 C.     
  Else
   Sign = "+"                          ' Temperature above 0 C.
  EndIf
 EndIf

Return


'===================================================================================================
DisplayTemp:
 If V >= 10000 then                     ' Above 0 C.      
  Temperature1 = V - 10000                   
 Else                                   
  Temperature1 = 10000 - V                  ' Below 0 C. 
 EndIf


 If V2 >= 10000 then                    ' Above 0 C.      
  Temperature2 = V2 - 10000                   
 Else                                   
  Temperature2 = 10000 - V2                 ' Below 0 C. 
 EndIf


LcdOut $FE, $80,  "INT : ", Sign," ", DEC (Temperature1 / 100), ".", DEC2 Temperature1, " ",223,"C " 
LcdOut $FE, $C0,  "EXT : ", Sign," ", DEC (Temperature2 / 100), ".", DEC2 Temperature2, " ",223,"C " 
Return

'===================================================================================================
SetTargetTemp:
 V = TargetTemp
 Gosub SelectSign
 Gosub DTemp 
 Pause 250
Return
'===================================================================================================
DTemp :
 If V >= 10000 then                     ' Above 0 C.      
  Temperature1 = V - 10000                   
 Else                                   
  Temperature1 = 10000 - V                  ' Below 0 C. 
 EndIf
LcdOut $FE, $C0, Sign," ", DEC (Temperature1 / 100), ".", DEC2 Temperature1, " ",223,"C " 
Return

'============================================= END OF PROGRAM ======================================

 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
*.netnet.rs.

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno24.01.2010. u 13:27 - pre 173 meseci
hvala na odgovoru i znam da se siftuje za jedno mesto u desno ali mi nije sve bas najjasnije zasto se bas 2na1 (ne znam kako se pise ono malo jedan gore) pomera za jedno mesto ,zasto bas od drugog bita krece .Nije mi bas najjasniji ovaj ceo proces ,ne mogu nikako da stvorim sliku u glavi.Znam da se u dva registra po 8 bita, LS byte i MS byte upisuju podaci ocitavanja.

Imam jos jedno pitanje isto u vezi tvog odgovora
Citat:
Count_Per_C - Count_Remain
sluzi da se dobije decimalni deo temperature sa vecom rezolucijom od same rezolucije DS1820 senzora

treba mi malo bolje objasnjenje i za ova dva registra sta se u kome smesta i kako se dobija decimalni deo i povecanje rezolucije samog senzora.
 
Odgovor na temu

Sepa011

Član broj: 161918
Poruke: 1817
109.106.236.*



+28 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno24.01.2010. u 14:53 - pre 173 meseci
Citat:
Darko_zed: hvala na odgovoru i znam da se siftuje za jedno mesto u desno ali mi nije sve bas najjasnije zasto se bas 2na1 (ne znam kako se pise ono malo jedan gore) pomera za jedno mesto ,zasto bas od drugog bita krece .Nije mi bas najjasniji ovaj ceo proces ,ne mogu nikako da stvorim sliku u glavi.Znam da se u dva registra po 8 bita, LS byte i MS byte upisuju podaci ocitavanja.

Imam jos jedno pitanje isto u vezi tvog odgovora

treba mi malo bolje objasnjenje i za ova dva registra sta se u kome smesta i kako se dobija decimalni deo i povecanje rezolucije samog senzora.


Siftuje se jedno mesto u desno posto bit na poziciji 20 nosi informaciju o 1/2 stepena 28, 27, 26, 25, 24, 23, 22 i 21 sadrze informaciju o celobrojnim stepenima, odn. 1, 2, ... Ako ne odsiftujes ovih 8 bitova udesno (ne oslobodis se decimalnog dela), onda bi morao stalno da 'gledas' (LOOKUP) u neke tablice da bi imao podatak o temperaturi. Ovako 00000001 = 1, 00000010 = 2, binarna reprezentacija celih brojeva .



Posto je datasheet za DS1820 malko nakaradno napisan, u njemu nije bas najbolje opisano sta su Count_Remain i Count_Per_C, ali to su ti 2 memorijske lokacije u Scratch Pad-u koje se iscitavaju iz senzora (jedan od razloga zasto ne koristim 1820 vec 18B20 je veca rezolucija senzora)


[Ovu poruku je menjao Sepa011 dana 24.01.2010. u 23:09 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
*.netnet.rs.

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno24.01.2010. u 15:24 - pre 173 meseci
Shvatio sam zasto se siftuje zato sto u registru su zapisi o celobrojnim stepenima 1,2,4,8,16,32,64,128 i 256 ,e sada kako se gledaju ovi zapisi recimo zapis 256 stepeni kada senzor meri do +125 , i kako mislis "bit na poziciji 20"?
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
*.netnet.rs.

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno24.01.2010. u 22:11 - pre 173 meseci
Mislim da bit 2na -1 nosi 0,5 stepeni ako se ne varam.
 
Odgovor na temu

Sepa011

Član broj: 161918
Poruke: 1817
109.106.236.*



+28 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno24.01.2010. u 22:15 - pre 173 meseci
axm, nije vise 20 nego 20. preskocilo se u formatiranju

a i ne moze 2546 stepeni. Imas i temperature ispod nule, a tada se temperatura prikazuje kao 'drugi komplement', kad pogledas u tablicu u datasheet videces da je MSBajt 11111111 a i u LSBajtu preovladjuju jedinice.

kod nekih kompajlera, bez obzira na mikrokontroler, postoje promenljive tipa INT (Integer) koje mogu da imaju vrednost izmedju -127 i +128 (xa, MSB = 1, ostatak predstavljen kao 'drugi komplement').
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
*.netnet.rs.

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno24.01.2010. u 23:00 - pre 173 meseci
Ma ovo nikako da shvatim
Temperature = (((Temperature >> 1) * 100) - 25) + (((Count_Per_C - Count_Remain) * 100) / Count_Per_C)
to bi bilo ovo samo sto ti kazes mnozi se sa 100 da bi za nula stepeni dobio 10000 i radio sa celim brojevima ,a ovo je iz datasheeta
TEMPERATURE =TEMP READ-25+COUNT_PER_C - COUNT REMAIN/COUNT_PER_C znaci ista formula samo se ne mnozi i siftuje ali kazi mi evo na prost nacin kako da dodjem do 10000 kada bih sam ovako na papiru hteo da resim formulu ,koje su mi vrednosti COUNT_PER_C,COUNT REMAIN, ali da gledamo formulu iz naseg primera sa mnozenjem sa 100.Znaci kada bi bilo 10000 to je nula ,kako doci do te vrednosti pesice na papiru?poz

 
Odgovor na temu

Sepa011

Član broj: 161918
Poruke: 1817
109.106.236.*



+28 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno25.01.2010. u 08:15 - pre 173 meseci
Ajmo da probam da raspetljam, mozda sam negde bio nejasan. Uzecemo za primer temperaturu od +25.5

+25.2 = 00000000 00110011 (prestacu u nastavku da prikazujem visi bajt posto je 0)

ako ovo 00110011 direktno pretvoris u decimalni prikaz dobije se 51 sto, slozices se, nema nikakve veze sa +25.5 stepeni.

00110011 >> 1 = 00011001 siftovanje u desno za jedno mesto (u prevodu binarno deljenje sa 2)

pretvoreno u decimalni prikaz dobija se 25

Ovo ti je, nadam se, pojasnjenje za prvi deo tvog pitanja. Posto nisam nikada koristio DS1820, nisam ni imao potrebe da preterano setaljno citam njegov datasheet da bih dokucio sta su Count_Per_C i Count_remain, mada mislim da su to vrednosti registara senzora koje je proizvodjac ostavio dostupnima korisniku da moze da preciznije izracunava temperaturu (kada mu je potrebna rezolucija bolja od 0.5 stepeni).

Nadam se da si u par mojih odgovora primetio da sam pominjao da, kada mi je potrebno, koristim DS18B20 senzor.
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
*.netnet.rs.

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno26.01.2010. u 22:30 - pre 173 meseci
Ok shvatam sustinu samo mi pojasni jos sledece uzeo si npr. +25.5C to je 00110011 binarno odnosno 51 ,i da bi dobio ceo broj siftujes u desno to razumem kako i zasto ali sta se desava sa onih 0.5C sto gubimo siftovanjem (deljenjem) da li dobijamo gresku ili smanjujemo preciznost posto si siftovanjem dobio ceo broj 25C a u stvari je 25.5C.Hvala na pomoci i pozdrav.
 
Odgovor na temu

Sepa011

Član broj: 161918
Poruke: 1817
91.148.95.*



+28 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno27.01.2010. u 08:57 - pre 173 meseci
Paz' 'vako:

pošto ti operišeš sa promenljivima koje si iščitao iz senzora (i koje se, dok ih ne izmeniš na bilo koji način, nalaze u RAM-u) raznoraznom matematikom, na tebi je da smisliš kako ćeš doći do željenog rezultata.

Šiftovanjem u desno, za jedan bit, dobijaš CELOBROJNI deo temperature (u našem, već pominjanom primeru, 25 stepeni). Pomoću Count_Per_C i Count_Remain se iyračunava DECIMALNI deo temperature.

Dallas-Maxim je u kasnijim verzijama senzora to odradio interno (DS18S20 i DS18B20)

Na slici 4 u prikačenom datasheet-u imaš objašnjeno kako DS1820 interno radi. 2 oscilatora sa različitim temperaturnim koeficijentima, 2 brojača, ....
Prikačeni fajlovi
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
*.netnet.rs.

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno27.01.2010. u 21:50 - pre 173 meseci
aha znaci tako to ide al ga komplikuju .Imam jos jedno pitanje za onih -25 sto si mi poslao isecak iz datasheet-a ,onaj binarni
deo daje decimalni broj 206 sto je u stvari -25 (zato sto je visi bajt MSB na 1 koja odredjuje (-)),a 0 C je bin. 11111111 ili dec 255 da ne pokazujemo visi bajt (ostalih osam jedinica jer je razlika u decimalnom zapisu ista) e tu me buni sledece ako je
255=0C a 206=-25C razlika u decimalnom broju je 49 ili bin. 110001 a to ispada -24.5 stepeni a ako se siftuje onda je -24C .
Ovo me buni kako je dobio -25C ,izvini ako davim ali idem dok ne isteram do kraja jos ovo me buni ,a kao sto kazes zamenicu i ja senzor stavicu noviji jer ko da se je.e sa ovim starim slozenim.hvala i pozdrav
Prikačeni fajlovi
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
*.netnet.rs.

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno28.01.2010. u 20:36 - pre 173 meseci
Jos samo ovo i necu vise
 
Odgovor na temu

Stojan Trifunovic

Član broj: 15156
Poruke: 366
*.rs
Via: [es] mailing liste



+8 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno01.02.2010. u 22:47 - pre 173 meseci
Dallas-ov datasheet uopste nije dovoljno precizan u opisu COUNT_REMAIN
i COUNT_PER_C registara.

Darko, pogledaj tehniku za povecanje rezolucje senzora sa mog sajta.
 
Odgovor na temu

Sepa011

Član broj: 161918
Poruke: 1817
91.148.91.*



+28 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno02.02.2010. u 14:38 - pre 173 meseci
Stojane, ako Darko stigne da procita to sto je na tvom sajtu. Inace, u programcetu u kome ima njemu nejasnih delova je bas ta metoda (ili veeeeoooooma slicna) upotrebljena. U stvari, iscitavaju se registri brojaca sa velikim temperaturnim koeficijentom i brojaca sa jako malim temperaturnim koeficijentom i onda se te dve vrednosti uvode u 'matematiku', sto je kod 18B20 i 18S20 vec odradjeno u samom senzoru.

Ne 'postizavam' jos i da raspetljam taj deo 'cvora' za Darka, sustigle obaveze
 
Odgovor na temu

Stojan Trifunovic

Član broj: 15156
Poruke: 366
*.rs
Via: [es] mailing liste



+8 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno02.02.2010. u 15:31 - pre 173 meseci
Ne znam dovoljno dobro basic komande za PIC, pa stoga ni ne mogu
vise pomoci. Na mom sajtu nema programa. Data je samo teorija.
Pretpostavljao sam da se koristi slican postupak, i zato sam smatrao
da bi mogla biti od pomoci.
 
Odgovor na temu

Sepa011

Član broj: 161918
Poruke: 1817
91.148.91.*



+28 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno02.02.2010. u 20:31 - pre 173 meseci
Stojane, uopste nemoj da se uzbudjujes po ovom pitanju, stoji u datasheet-u od DS1820, al' mlogo zakukuljeno, t.j. lose objasnjeno.
 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
*.netnet.rs.

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno05.02.2010. u 21:56 - pre 173 meseci
Ljudi hvala puno na objasnjenju sada mi je jos jasnije procitao sam sa sajta sadrzaj i pojasnile su mi se neke stvari mada me jos malo po nesto zbunjuje oko COUNT_REMAIN i COUNT_PER_C ,ali cu definitivno da proucim ove novije DS senzore kao sto Zoran preporucuje jer je definitivno u pravu.Ako mozete samo da mi objasnite zadnje moje pitanje oko onog -25C .Pozdrav
 
Odgovor na temu

Sepa011

Član broj: 161918
Poruke: 1817
91.148.92.*



+28 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno13.02.2010. u 21:12 - pre 172 meseci
@Darko_Zed
Nadam se da si malko sam dokucio sta se desava sa -25?

@rsinisa
el ovo jedna od tvoji' slicki
Prikačeni fajlovi
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno13.02.2010. u 21:48 - pre 172 meseci
Moja slicka? Ne, ali je simpaticna.

 
Odgovor na temu

Darko_zed
Aleksinac

Član broj: 137277
Poruke: 2312
*.netnet.rs.

Sajt: www.proelektro018.com


+98 Profil

icon Re: Picbasic pitanja za sve sto mi nije jasno13.02.2010. u 22:11 - pre 172 meseci
Zorane iskreno nisam ni imao vremena ,a ni volje bas da saznam zasto je -25C jer si bio u pravu da bih trebao koristiti noviju seriju DS senzora sa vecom rezolucijom i manje je komplikovanije od ove pa tako da sam bas i izgubio volju mada mi je jos ostalo nerazjasnjeno kako je -25.Pozdrav
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Picbasic pitanja za sve sto mi nije jasno

Strane: < .. 1 2 3 4 5 6 7 8 ... Dalje > >>

[ Pregleda: 109669 | Odgovora: 530 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.