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 

Programiranje v bascom avr
Pojdi na stran Prejšnja  1, 2, 3 ... 9, 10, 11 ... 36, 37, 38  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Bascom sekcija
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 11.07
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Sre Jul 30, 2008 2:30 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
iskra
Član
Član



Pridružen-a: Tor 14 Okt 2003 10:13
Prispevkov: 791
Aktiv.: 3.55
Kraj: Lokev ,Boa , KOPER

PrispevekObjavljeno: Sre Jul 30, 2008 2:39 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 11.07
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Sre Jul 30, 2008 2:43 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 11.07
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Sre Jul 30, 2008 2:51 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9407
Aktiv.: 42.22
Kraj: Kranj - struževo

PrispevekObjavljeno: Sre Jul 30, 2008 2:52 pm    Naslov sporočila:   Odgovori s citatom

1820 in 18 B 20 imata drugače razporejene registre, kjer je zapisana temperatura Exclamation
_________________
I'm going to stand outside, so if anyone asks, I'm outstanding Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 11.07
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Sre Jul 30, 2008 3:05 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
iskra
Član
Član



Pridružen-a: Tor 14 Okt 2003 10:13
Prispevkov: 791
Aktiv.: 3.55
Kraj: Lokev ,Boa , KOPER

PrispevekObjavljeno: Sre Jul 30, 2008 3:14 pm    Naslov sporočila:   Odgovori s citatom

Ja boš moral še malo dodelati program : http://www.mcselec.com/index.php?option=com_content&task=view&id=75&Itemid=57
_________________
L.P. iskra
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
robika
Član
Član



Pridružen-a: Pon 05 Apr 2004 20:55
Prispevkov: 268
Aktiv.: 1.20
Kraj: ajdovščina

PrispevekObjavljeno: Sre Jul 30, 2008 3:31 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
anatom
Član
Član



Pridružen-a: Čet 22 Jun 2006 19:16
Prispevkov: 115
Aktiv.: 0.53
Kraj: PO

PrispevekObjavljeno: Sre Jul 30, 2008 3:45 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 11.07
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Sre Jul 30, 2008 3:51 pm    Naslov sporočila:   Odgovori s citatom

iskra je napisal/a:
Ja boš moral še malo dodelati program : http://www.mcselec.com/index.php?option=com_content&task=view&id=75&Itemid=57


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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 11.07
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Sre Jul 30, 2008 3:52 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 11.07
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Sre Jul 30, 2008 4:05 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 11.07
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Sre Jul 30, 2008 8:14 pm    Naslov sporočila:   Odgovori s citatom

Juhu!!! Razz Laughing

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... Shocked Confused

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 11.07
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Čet Jul 31, 2008 11:21 pm    Naslov sporočila:   Odgovori s citatom

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. Sad Evil or Very Mad Zdaj mi že gre nenatančnost notranjega oscilatorja na živce. Rabim zunanjega! Mad Exclamation

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
iskra
Član
Član



Pridružen-a: Tor 14 Okt 2003 10:13
Prispevkov: 791
Aktiv.: 3.55
Kraj: Lokev ,Boa , KOPER

PrispevekObjavljeno: Pet Avg 01, 2008 9:41 am    Naslov sporočila:   Odgovori s citatom

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, Very Happy pa nihče nima časa čitati Wink . saj ti bo takoj jasno , samo malo se poglobi v datasheet čipa Wink

_________________
L.P. iskra
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Bascom sekcija Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2, 3 ... 9, 10, 11 ... 36, 37, 38  Naslednja
Stran 10 od 38

 
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: 70 dni


Powered by phpBB © 2001, 2005 phpBB Group