|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
program_er Član
Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 11.07 Kraj: Maribor (Pohorje)
|
Objavljeno: Sre Jul 30, 2008 2:30 pm Naslov sporočila: |
|
|
Hej, čakaj malo! Kako naj ta dva programa stlačim v enega. Pa jaz imam samo en senzor!
Kode se nebom sprabil spreminjat, ker bom še kaj zaj*bal! _________________ Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
|
|
Nazaj na vrh |
|
|
iskra Član
Pridružen-a: Tor 14 Okt 2003 10:13 Prispevkov: 791 Aktiv.: 3.55 Kraj: Lokev ,Boa , KOPER
|
Objavljeno: Sre Jul 30, 2008 2:39 pm Naslov sporočila: |
|
|
Ko prečitaš kodo , prvega več ne rabiš . Če pa veš naslov DS-a pa prvega sploh ne potrebuješ.
Ovezno pa spremeni to
Koda: |
Config Lcdpin = Pin , Db7 = Portb.6 , Db6 = Portb.7 , Db5 = Portd.5 , Db4 = Portd.6 , E = Portd.7 , Rs = Portb.0
|
S tem ti LCD ne bo delal
Koda: |
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portb.5 , Rs = Portb.3
Config Lcd = 16 * 2 |
_________________ L.P. iskra |
|
Nazaj na vrh |
|
|
program_er Član
Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 11.07 Kraj: Maribor (Pohorje)
|
Objavljeno: Sre Jul 30, 2008 2:43 pm Naslov sporočila: |
|
|
A, torej najprej bom v mego naložil prvi program, on mi bo naslov mojega čipa napisal na LCD-ju, jaz si bom to zapisal na list.
Potem pa enostavno zaženem drugi program? Kam v kodo vpišem naslov?? _________________ Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
|
|
Nazaj na vrh |
|
|
program_er Član
Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 11.07 Kraj: Maribor (Pohorje)
|
Objavljeno: Sre Jul 30, 2008 2:51 pm Naslov sporočila: |
|
|
Prvi program deluje, in na LCDju mi pokaže:
1:255
2:255
3:255
4:255
5:255
6:255
7:255
8:255
Meni se zdi da to nebi smelo biti tako. Imam 5 čipov, sem vse zaenjal. Pa pri vsakem sem probal z nogico na Vcc, pa v zraku (parazitno napajanje). In data linije imam na Vcc 4,7k upor. Čip imam na PORTB.2, kar sem v kodi popravil. _________________ Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
|
|
Nazaj na vrh |
|
|
aly Član
Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 42.22 Kraj: Kranj - struževo
|
Objavljeno: Sre Jul 30, 2008 2:52 pm Naslov sporočila: |
|
|
1820 in 18 B 20 imata drugače razporejene registre, kjer je zapisana temperatura _________________ I'm going to stand outside, so if anyone asks, I'm outstanding |
|
Nazaj na vrh |
|
|
program_er Član
Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 11.07 Kraj: Maribor (Pohorje)
|
Objavljeno: Sre Jul 30, 2008 3:05 pm Naslov sporočila: |
|
|
program_er je napisal/a: |
Bom poizkusil tvojo kodo.
Moram pa opozoriti, da uporabljam čip DS 18 B 20 ki ima tovarniško nastavljeno 12-bitno resolucijo in čas merjenja 750ms!
Pomembni podatki o tem v zgornjem datasheetu na strani 8 in na strani 3 pod poglavjem OPERATION—MEASURING TEMPERATURE. |
Saj sem že rekel. _________________ Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
|
|
Nazaj na vrh |
|
|
iskra Član
Pridružen-a: Tor 14 Okt 2003 10:13 Prispevkov: 791 Aktiv.: 3.55 Kraj: Lokev ,Boa , KOPER
|
|
Nazaj na vrh |
|
|
robika Član
Pridružen-a: Pon 05 Apr 2004 20:55 Prispevkov: 268 Aktiv.: 1.20 Kraj: ajdovščina
|
Objavljeno: Sre Jul 30, 2008 3:31 pm Naslov sporočila: |
|
|
program_er je napisal/a: |
Pa pri vsakem sem probal z nogico na Vcc, pa v zraku (parazitno napajanje). |
Če ga napajaš parazitno potem Vcc veži na maso. Jaz imam na dvožični liniji dolžine >40 metrov (zvezda vezava) vezanih 7 senzorjev pa vse teče po pravilih. |
|
Nazaj na vrh |
|
|
anatom Član
Pridružen-a: Čet 22 Jun 2006 19:16 Prispevkov: 115 Aktiv.: 0.53 Kraj: PO
|
Objavljeno: Sre Jul 30, 2008 3:45 pm Naslov sporočila: |
|
|
program_er je napisal/a: |
Pozdravljeni!
Kakšno vlogo za vraga ima pin AREF pri AD pretvorniku? |
Tu lahko pripelješ reverenčno napetost za AD pretvornik |
|
Nazaj na vrh |
|
|
program_er Član
Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 11.07 Kraj: Maribor (Pohorje)
|
Objavljeno: Sre Jul 30, 2008 3:51 pm Naslov sporočila: |
|
|
Sem naložil in testiral program. Sem imel priključen 1 senzor, pa je nekaj pisalo, pol pa DSid2 not on bus.
Potem pa sem priključil še en enak senzor, točno poleg njega oziroma na isti pin in enako, pa mi je isto napisalo.
Kode pa na 1 senzor ne znam predelat. Kaj lahko kdo napiše kodo za senzor DS18B20, da bi videl vsaj njegov naslov. Že to bi bilo veselje zame!
Na 9 strani v priponki je njegov datasheet. Ko pa bom enkrat imel eno kodo, pa bom že znal naprej. _________________ Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
|
|
Nazaj na vrh |
|
|
program_er Član
Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 11.07 Kraj: Maribor (Pohorje)
|
Objavljeno: Sre Jul 30, 2008 3:52 pm Naslov sporočila: |
|
|
robika je napisal/a: |
program_er je napisal/a: |
Pa pri vsakem sem probal z nogico na Vcc, pa v zraku (parazitno napajanje). |
Če ga napajaš parazitno potem Vcc veži na maso. Jaz imam na dvožični liniji dolžine >40 metrov (zvezda vezava) vezanih 7 senzorjev pa vse teče po pravilih. |
Ja, tvoja koda je OK. Samo meni ne deluje, ker imam senzor DS18B20 in ne DS1820!!! _________________ Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
|
|
Nazaj na vrh |
|
|
program_er Član
Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 11.07 Kraj: Maribor (Pohorje)
|
Objavljeno: Sre Jul 30, 2008 4:05 pm Naslov sporočila: |
|
|
Juhu!!!
Koda od iskra mi deluje!!! Ampak ne ona za branje temperature, ampak ona za branje naslova.
Ugotovil sem, da moram senzor napajat parazitno, Data na PORTB.2, VDD in GND pa na GND.
Na LCDju se mi izpiše bajt za bajtom:
1. Senzor:
1:40
2:68
3:244
4:183
5:1
6:0
7:0
8:178
2. Senzor:
1:40
2:72
3:14
4:184
5:1
6:0
7:0
8:78 _________________ Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
|
|
Nazaj na vrh |
|
|
program_er Član
Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 11.07 Kraj: Maribor (Pohorje)
|
Objavljeno: Sre Jul 30, 2008 8:14 pm Naslov sporočila: |
|
|
Juhu!!!
Program od @iskra mi deluje! Moral sem samo parazitno priklopiti napajanje in deluje.
Moral sem še malo popraviti rezultat, ker ko je bilo npr. 21,5°C mi je kazalo 215,8°C ali pa podobno.
Koda:
Koda: |
'///////////////////////////////////////////////////////////////////////////////
'DS1820 Thermo - merjenje temperature z dvema senzorjema
' Za Šolo Programiranja pri OZS .
'
'///////////////////////////////////////////////////////////////////////////////
$regfile = "m8def.dat"
$crystal = 1000000
'$crystal = 4000000
'Dim Ar(8) As Byte , A As Byte , 'I As Byte
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db7 = Portb.6 , Db6 = Portb.7 , Db5 = Portd.5 , Db4 = Portd.6 , E = Portd.7 , Rs = Portb.0
Config Portb.1 = Output
Osvetlitev Alias Portb.1
Deflcdchar 0 , 2 , 5 , 2 , 32 , 32 , 32 , 32 , 32 ' replace ? with number (0-7)
Osvetlitev = 1
'$sim
Declare Sub Read1820
Declare Sub Temperature
Declare Sub Temp1
Declare Sub Temp2
Dim T2 As Integer , T4 As Integer
Dim Bd(9) As Byte
Dim I As Byte , Tmp As Byte
Dim T As Integer , T1 As Integer , Tn As Byte
Dim Tz As Byte , Tp As Integer , Tb As Integer
Dim Ar(8) As Byte
T = 0
Config 1wire = Portb.2
Cursor Off Noblink
Cls
Reset Portb
Locate 1 , 1 : Lcd "DS1820 "
Locate 2 , 1 : Lcd " Temperatura"
Wait 2
Do
Temp1
Temperature
Locate 1 , 1 : Lcd "1.temp: "
Tn = T4
Tp = T / 10
Tb = T Mod 10
Lcd Tp 'vpis celega dela
Lcd Chr(46) 'vpis pike
Lcd Tb 'vpis decimalnega
Lcd Chr(0) 'vpis stopinj
Lcd "C"
If Err = 1 Then 'ce ni senzorja
Locate 1 , 3 : Lcd "-- " 'je na LCDju "-- "
End If 'izpis praznega prostora
Temp2
Temperature
Locate 2 , 1 : Lcd "2.temp: "
Tz = T4
Tp = T / 10
Tb = T Mod 10
Lcd Tp
Lcd Chr(46)
Lcd Tb
Lcd Chr(0)
Lcd "C"
If Err = 1 Then 'ce ni senzorja
Locate 2 , 3 : Lcd "-- " 'je na LCDju "-- "
End If
'Prizgi diodo
If T <= 2 Then 'Ob vrednosti prizgi LED
Reset Portd.5
Wait 1
Elseif T > 2 Then
Set Portd.5
Wait 1
End If
Loop
End
Rem ///////
' read address 1
Sub Temp1 'branje adrese 1
For I = 0 To 8
Ar(i + 1) = Lookup(i , Dta1)
Next
End Sub
Rem /////////////////////////
' read address 2
Sub Temp2 'branje adrese 2
For I = 0 To 7
Ar(i + 1 ) = Lookup(i , Dta2)
Next
End Sub
Dta1:
Data 40 , 68 , 244 , 183 , 1 , 0 , 0 , 178 'naslov 1 Dallasa
Dta2:
Data 40 , 72 , 14 , 184 , 1 , 0 , 0 , 78 'naslov 2 Dallasa
'///////////////////////////////////////////////////////////////////////////////
Sub Temperature 'merjenje temperature
1wreset
1wwrite &H55
1wwrite Ar(1) , 8 '1Wire ukaz
1wwrite &H44
Wait 1
Read1820 'read 9 bytes
End Sub
Sub Read1820 'bere senzor 'T za 0.1 C
1wreset 'reset
1wwrite &H55 '1Wire ukaz
1wwrite Ar(1) , 8
1wwrite &HBE
Bd(1) = 1wread(9)
1wreset
Tmp = Bd(1) And 1 '0.1C natancnost
If Tmp = 1 Then
Decr Bd(1)
End If
T = Makeint(bd(1) , Bd(2))
T4 = T / 20 'T4 lahko uporabimo, ce zelimo temp. kot celo stevilo
T = T * 50 : T = T - 25 : T1 = Bd(8) - Bd(7) : T1 = T1 * 100 'za to matematiko je potrebno pogledati datashet
T1 = T1 / Bd(8) : T = T + T1 : T = T / 10 'tam je formula in opis vseh podatkov ki jih beremo
T1 = T
T = T / 10 ' bom kasneje še razložil vsako vrstico posebej
T2 = T * 10
T1 = T1 - T2
T1 = Abs(t1)
End Sub ' to je primer branja temperature iz več DS-ov , s tem , da moramo prvo prebrati njihove naslove
|
Trenutno imam prikaz na xx,x stopinje. Popravek sem naredil kar pred prikazom, ker tiste spodnje matematike ne razumem...
Glavno da dela. Čeprav bi lahko, kot si rekel, malo razložil tisto matematiko in kake dele kode.
Hvala! _________________ Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
|
|
Nazaj na vrh |
|
|
program_er Član
Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 11.07 Kraj: Maribor (Pohorje)
|
Objavljeno: Čet Jul 31, 2008 11:21 pm Naslov sporočila: |
|
|
program_er je napisal/a: |
Imam težavo. Rad bi nastavil mojo mego8 na zunanji kvarčni kristal, pa mi ne uspe. Ko sem to hotel narediti na megi16, sem jo s tem zaklenil oz. uničil.
Uporabljam AVRUSB programator (v Bascomu-AVR STK500 extended)
Ko odprem okno za programiranje, mi se poleg ostalega prikaže tudi to:
Ko priključim ATmega8 in pri vsem kliknem Read, mi potem kaže to:
V datasheetu od mege pa piše med drugim to:
Kot se vidi pri 1. sliki, sta pri Fuse bits dva prostorčka oz. kvadratka. Zanima me, kateri kvadratek so CKSEL 3...0 biti. Prvi ali drugi? Če je eden CKSEL, iz česa je potem sestavljen drugi? |
Še vedno me to matra. Zdaj mi že gre nenatančnost notranjega oscilatorja na živce. Rabim zunanjega!
EDIT: Imam pa navaden kvarčni kristal, za zunaj priklopit oziroma External Crystal/Ceramic Resonator _________________ Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
|
|
Nazaj na vrh |
|
|
iskra Član
Pridružen-a: Tor 14 Okt 2003 10:13 Prispevkov: 791 Aktiv.: 3.55 Kraj: Lokev ,Boa , KOPER
|
Objavljeno: Pet Avg 01, 2008 9:41 am Naslov sporočila: |
|
|
Citiram: |
Juhu!!!
Program od @iskra mi deluje! Moral sem samo parazitno priklopiti napajanje in deluje.
Moral sem še malo popraviti rezultat, ker ko je bilo npr. 21,5°C mi je kazalo 215,8°C ali pa podobno.
|
Me veseli , tam sem pa stvari malo bolj natančno razložil, pa nihče nima časa čitati . saj ti bo takoj jasno , samo malo se poglobi v datasheet čipa _________________ L.P. iskra |
|
Nazaj na vrh |
|
|
|
|
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: 70 dni
Powered by phpBB © 2001, 2005 phpBB Group
|