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 

BASCOM AVR-EEPROM-8 BYTOV

 
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
dkone
Član
Član



Pridružen-a: Sre 07 Mar 2007 18:53
Prispevkov: 2116
Aktiv.: 9.51
Kraj: Krško

PrispevekObjavljeno: Pet Jan 06, 2012 10:58 pm    Naslov sporočila:  BASCOM AVR-EEPROM-8 BYTOV Odgovori s citatom

Pozdravljeni,


Delam si eno aplikacijo, kjer uporabljam notranji eeprom. Konkretno gre za branje addrese ds1820(4 senzorji), katera je 8bytna in bi jo rad shranil v eeprom, ki ima 8 bitne lokacije. Treba bo razbijat 8x8 bitov. Ima kdo kakšno drugo idejo od spodnje?

Prilagam kodo:

Koda:

Dim Addressa(8) As Byte                                     'sprem za shranjevanje 8 bytov address-e   

Beri:

   Pom = Senzor_no - 1
   Ee_adr = Pom * 8

   1wreset                                                  'procedura za branje iz ds1820 senzorja
   1wwrite &H33
   For I = 1 To 8
      Addressa(i) = 1wread()                                'addresso shranimo v Addressa(i)
   Next

   For I = 1 To 8                                           'procedura za shranjevanje address-e v eeprom
      Writeeeprom Adressa(i) , Ee_adr 
   
      Waitms 10                                             'cas, ki ga EEPROM potrebuje za vpis
      Ee_adr = Ee_adr + 1
   Next


Bascom mi erorje meče ven, da spremenljivka adressa(i) ni deklarirana kot array. Kako to narediti?

_________________
Denis
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
int47
Član
Član



Pridružen-a: Pon 15 Dec 2003 0:10
Prispevkov: 2104
Aktiv.: 8.88
Kraj: Ljubljana

PrispevekObjavljeno: Pet Jan 06, 2012 11:58 pm    Naslov sporočila:   Odgovori s citatom

Poskusi tako:
Koda:

Dim Addressa(8) As Eram Byte         ' polje 8 bytov se nahaja v EEPROM-u
.
.
.
   1wreset                                                  'procedura za branje iz ds1820 senzorja
   1wwrite &H33
   For I = 1 To 8
      'Addressa(i) = 1wread()                               ' če bascom ne bi bil četrt-izdelek, bi to šlo
      Tmp = 1wread()                                        ' preberi
      Addressa(i) = Tmp                                     ' vpiši
   Next
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
red_mamba
Član
Član



Pridružen-a: Ned 20 Feb 2005 17:56
Prispevkov: 1486
Aktiv.: 6.27
Kraj: Yogyakarta

PrispevekObjavljeno: Sob Jan 07, 2012 10:14 am    Naslov sporočila:  Re: BASCOM AVR-EEPROM-8 BYTOV Odgovori s citatom

dkone je napisal/a:
Pozdravljeni,


Delam si eno aplikacijo, kjer uporabljam notranji eeprom. Konkretno gre za branje addrese ds1820(4 senzorji), katera je 8bytna in bi jo rad shranil v eeprom, ki ima 8 bitne lokacije. Treba bo razbijat 8x8 bitov. Ima kdo kakšno drugo idejo od spodnje?

Prilagam kodo:

Koda:

Dim Addressa(8) As Byte                                     'sprem za shranjevanje 8 bytov address-e   

Beri:

   Pom = Senzor_no - 1
   Ee_adr = Pom * 8

   1wreset                                                  'procedura za branje iz ds1820 senzorja
   1wwrite &H33
   For I = 1 To 8
      Addressa(i) = 1wread()                                'addresso shranimo v Addressa(i)
   Next

   For I = 1 To 8                                           'procedura za shranjevanje address-e v eeprom
      Writeeeprom Adressa(i) , Ee_adr 
   
      Waitms 10                                             'cas, ki ga EEPROM potrebuje za vpis
      Ee_adr = Ee_adr + 1
   Next


Bascom mi erorje meče ven, da spremenljivka adressa(i) ni deklarirana kot array. Kako to narediti?


javlja ti zato ker si se zatipkal in ti en D manjka v adDressa Smile

_________________
Bad things happen to good people all the time for no reason!
Blog
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3359
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Ned Jan 08, 2012 9:01 am    Naslov sporočila:   Odgovori s citatom

Kadar upoabljam eeprom v Bascomu, vedno definiram spremeneljivko že v eepromu in potem je branje in pisanje preprosto.

Koda:
Dim eespremenljivka as eram byte
dim i as byte
eespremenljivka = i



in potem se ne zafrkavam z računanjem naslovov. Eespremenljikva je lahko kateregakoli formata, byte, integer, itd

_________________
Nihče ni za vojno in vsi so za mir,
vsi so za bratstvo, nihče za prepir.
Od same ljubezni vsak čas na granatah
bo vtisnjeno geslo: "Darilo za brata"
Janez Menart
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
dkone
Član
Član



Pridružen-a: Sre 07 Mar 2007 18:53
Prispevkov: 2116
Aktiv.: 9.51
Kraj: Krško

PrispevekObjavljeno: Ned Jan 08, 2012 10:59 am    Naslov sporočila:   Odgovori s citatom

vilko je napisal/a:
Kadar upoabljam eeprom v Bascomu, vedno definiram spremeneljivko že v eepromu in potem je branje in pisanje preprosto.

Koda:
Dim eespremenljivka as eram byte
dim i as byte
eespremenljivka = i



in potem se ne zafrkavam z računanjem naslovov. Eespremenljikva je lahko kateregakoli formata, byte, integer, itd



Hvala za odgovor! Vilko kaj pa če imam array? eespremenljivka(8) ? Če pogledaš moj primer imam 64 bitno kodo naslova ds1820 senzorja, ki bi jo rad shranil v eeprom. To pa zato, ker uporabljam 4 senzorje in vsak senzor ima drugo kodo. Mogoče ideja kako bi to naredil kako drugače ?

_________________
Denis
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3359
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Ned Jan 08, 2012 11:13 am    Naslov sporočila:   Odgovori s citatom

Točno v ta namen uporabljam eeprom, seveda obvlada tudi array spremenljivk
Probaj!
Le nekaj je potrebno oporoziti:
Nekje sem bral, nisem preverjal, a sem upošteval nasvet:
Ker so imeli ali imajo nekateri atmeli napako in napačno obravnavajo eeprom naslov 0, je pametno, da ta naslov preskočiš tako, da na tem mestu definiraš nek bajt, ki ga ne uporabiš v programu.

Koda:
dim preskoči as eram byte
dim ds1820id1(16)  as eram byte  'prvi termometer
dim ds1820id2(16)  as eram byte  'drugi termometer

_________________
Nihče ni za vojno in vsi so za mir,
vsi so za bratstvo, nihče za prepir.
Od same ljubezni vsak čas na granatah
bo vtisnjeno geslo: "Darilo za brata"
Janez Menart
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
red_mamba
Član
Član



Pridružen-a: Ned 20 Feb 2005 17:56
Prispevkov: 1486
Aktiv.: 6.27
Kraj: Yogyakarta

PrispevekObjavljeno: Pon Jan 09, 2012 12:56 pm    Naslov sporočila:   Odgovori s citatom

vilko je napisal/a:
Točno v ta namen uporabljam eeprom, seveda obvlada tudi array spremenljivk
Probaj!
Le nekaj je potrebno oporoziti:
Nekje sem bral, nisem preverjal, a sem upošteval nasvet:
Ker so imeli ali imajo nekateri atmeli napako in napačno obravnavajo eeprom naslov 0, je pametno, da ta naslov preskočiš tako, da na tem mestu definiraš nek bajt, ki ga ne uporabiš v programu.

Koda:
dim preskoči as eram byte
dim ds1820id1(16)  as eram byte  'prvi termometer
dim ds1820id2(16)  as eram byte  'drugi termometer


res je,
na nekaterih uC-jih se ti je lahko zgodilo da se je povozil 1. byte v eepromu

Mr. Green


Glede tega je najbolje pogledati datasheet in errata data za tvoj uC ce slucajno rabis ves EEPROM. Drugace pa kot je Vilko rekel preskocis prvega

_________________
Bad things happen to good people all the time for no reason!
Blog
Nazaj na vrh
Odsoten 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
Stran 1 od 1

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


Powered by phpBB © 2001, 2005 phpBB Group