Kazalo po Svet elektronike forumu Svet elektronike
Revija za prave elektronike
 
AlbumAlbum   Pomoč pogostih vprašanjPomoč pogostih vprašanj   IščiIšči   Seznam članovSeznam članov   Skupine uporabnikovSkupine uporabnikov   Registriraj seRegistriraj se 
 Tvoj profilTvoj profil   Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil   PrijavaPrijava 

stevilo spremenljivk
Pojdi na stran 1, 2  Naslednja
 
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Digitalna elektronika
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
tonni
Profesionalec


Pridružen/-a: Tor Jan 2004 9:27
Prispevkov: 108

PrispevekObjavljeno: Čet Maj 25, 2006 1:03 pm    Naslov sporočila: stevilo spremenljivk Odgovori s citatom

zdravo
mi lahko kdo pove,koliko je maximalno spremenljivk
za 89c4051.Jaz sem pri moji aplikaciji
z nekaj polji in nekaj wordi prisel do 30 bytev,kar je izgleda prevec
za ta cip.Kje lahko preberes ta podatek.

lp
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Slemi
Profesionalec


Pridružen/-a: Pet Feb 2006 3:46
Prispevkov: 69
Kraj: Laško

PrispevekObjavljeno: Čet Maj 25, 2006 1:09 pm    Naslov sporočila: Odgovori s citatom

Omejen si s količino RAM-a, vsaka spremenljivka tipa byte ti vzame eno lokacijo tipa integer pa dve, če pa imaš polja pa vsaka celica v byte polju eno lokacijo vsaka celica v integer polju pa po dve lokaciji.

Npr: "Dim Polje As Integer * 10" ti vzame 20 spominskih lokacij.

Lp
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
Gustav
Profesionalec


Pridružen/-a: Pon Jun 2005 17:19
Prispevkov: 768

PrispevekObjavljeno: Čet Maj 25, 2006 1:20 pm    Naslov sporočila: Odgovori s citatom

... RAMa pa ima doticni MCU 128 bajtov. Nekaj prostora porabi tudi prevajalnik za stack in nekaj drugih nastavitev, sam lahko izracunas koliko ti (v idealnem primeru) ostane, kot je napisal Slemi.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
tonni
Profesionalec


Pridružen/-a: Tor Jan 2004 9:27
Prispevkov: 108

PrispevekObjavljeno: Čet Maj 25, 2006 5:36 pm    Naslov sporočila: Odgovori s citatom

zdravo
koliko zavzamejo posamezni tipi spremenljivk mi je znano.V bistvu v mojem primeru program se dela z 42 bajti spremenljivk.Ko dodam se kaksen bajt se zadeva ustavi.Kaj mi preostane Confused .Optimizirati spremenljivke ali pa izdelati novo vezje z 8052 cpu-jem.Glede na to,da ima 128 bajtov rama,bi pricakoval,da lahko uporabim vec kot 42 bajtov spremenljivk.
lp
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Profesionalec


Pridružen/-a: Pon Jan 2004 11:54
Prispevkov: 805
Kraj: Ljubljana

PrispevekObjavljeno: Čet Maj 25, 2006 5:45 pm    Naslov sporočila: Ali Odgovori s citatom

Predvidevam, da programiraš v bascomu.

Ali ti bascom zavrača, ali program ne dela?
Pri bascomu moraš pravilno nastaviti options-compiler-misc-byteend tja na hex D0

Če ti program ne dela, pa poglej potem, ko prevedeš program, Report, in na poročilu piše, kje se začne Stack, le ta se začne tam, kjer si končal trošiti ram za variable. Naslov začetka stacka pri 2051 ne sme biti višji od 5F če uporabljaš prekinitve, sicer pa recimo do 6F, vemo 7F je naslov zadnjega bajta rama, ki ga 2051 ime

_________________
Sliši se paradoksalno, a je vendarle res:
Nekateri ljudje imajo vedno vse prav. No, včasih.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
tonni
Profesionalec


Pridružen/-a: Tor Jan 2004 9:27
Prispevkov: 108

PrispevekObjavljeno: Pet Maj 26, 2006 11:09 am    Naslov sporočila: Odgovori s citatom

zdravo
delam v bascomu.Stack start je H5C,used rom pa je H6DB ali 1755 dec.
V glavnem neha mi delat timer0,komunikacija z PC-jem.Ni odziva.
Zanima me,kako na najkrajsi nacin,z cim manj spremenljivkami spremeniti 4 mestno stevilko na tisocice, stotice, desetice in enice.
moj primer:prevec spremenljivk!
Koda:

Dim Spom1 As Word , Tpom As Word , Spom2 As Word , Dpom1 As Byte
Dim Dpom2 As Byte,Enice As Byte , Desetice As Byte
Dim Stotice As Byte , Tisocice As Byte
Tisocice = Interval / 1000
    Tpom = Tisocice * 1000
    Spom1 = Interval - Tpom
    Stotice = Spom1 / 100
    Spom2 = Stotice * 100
    Dpom1 = Spom1 - Spom2
    Desetice = Dpom1 / 10
    Dpom2 = Desetice * 10
    Enice = Dpom1 - Dpom2
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Profesionalec


Pridružen/-a: Pon Jan 2004 11:54
Prispevkov: 805
Kraj: Ljubljana

PrispevekObjavljeno: Pet Maj 26, 2006 12:50 pm    Naslov sporočila: Timer0? Odgovori s citatom

Če ti neha delat timer0, potem bi veljalo vedeti, kako ga uporabljaš in iskati napako tam.

Stackstart pri 5c bi moral biti OK.

Tudi predelava številke je OK, z manj spremenljivkami težko prideš, razen, če vsako izračunano številko takoj daš ven, recimo s print

morda tako

Koda:
Dim Stevilo As Word
Stevilo = 5432
Dim I As Word
I = Stevilo / 1000
Print I;
I = Stevilo Mod 1000
I = I / 100
Print I;
I = Stevilo Mod 100
I = I / 10
Print I;
I = Stevilo Mod 10
Print I;
Print

Print Stevilo

End


vendar vse skupaj ima malo smisla, saj potem lahko enostavno prepustimo print ukaz, da opravi svoje.

Če pa potrebuješ številke v nekem drugem tekstu, potem pa narediš tako:

Koda:
Dim Text As String * 20
Dim Stevilo As Word
Stevilo = 5432
Text = "Napetost = "
Text = Text + Str(stevilo)
Text = Text + " V"
Print Text

_________________
Sliši se paradoksalno, a je vendarle res:
Nekateri ljudje imajo vedno vse prav. No, včasih.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
tonni
Profesionalec


Pridružen/-a: Tor Jan 2004 9:27
Prispevkov: 108

PrispevekObjavljeno: Pon Maj 29, 2006 1:00 pm    Naslov sporočila: Odgovori s citatom

zdravo
čudna so pota gospodova,še posebej pa baskoma. Sad Zdaj pa še eno vprašanje.Se da 51-tke programsko resetirati.
lp
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Profesionalec


Pridružen/-a: Pon Jan 2004 11:54
Prispevkov: 805
Kraj: Ljubljana

PrispevekObjavljeno: Pon Maj 29, 2006 1:27 pm    Naslov sporočila: Žal, tega ne vem, Odgovori s citatom

Žal, tega ne vem, verjetno se da s skokom na kak določen naslov, a to mislim, da ni popoln reset, saj mislim, da ne resetira vrat in internih naprav, kot so timerji in podobno. Morda bo to odgovoril kdo drug.
_________________
Sliši se paradoksalno, a je vendarle res:
Nekateri ljudje imajo vedno vse prav. No, včasih.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Gustav
Profesionalec


Pridružen/-a: Pon Jun 2005 17:19
Prispevkov: 768

PrispevekObjavljeno: Pon Maj 29, 2006 1:57 pm    Naslov sporočila: Odgovori s citatom

Nikjer ni nic takega dokumentirano. Ce bi samo rad dosegel, da se program zacne izvajati od zacetka (= skok na reset), potem ni tezav, a registri in RAM ne bodo sli nazaj na zacetno stanje.

Zakaj bi sploh hotel programsko resetirati delujoco napravo ?
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
zlabo
Mojster


Pridružen/-a: Pet Sep 2006 15:17
Prispevkov: 23

PrispevekObjavljeno: Čet Mar 22, 2007 4:13 pm    Naslov sporočila: Odgovori s citatom

mene zanima kakšni so simptomi prezasedenosti RAM-a. A se program popolnoma ustavi, ali je možno da deluje le še delno, da ni mogoče nastavljati spremenljivk?
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Profesionalec


Pridružen/-a: Pon Jan 2004 11:54
Prispevkov: 805
Kraj: Ljubljana

PrispevekObjavljeno: Čet Mar 22, 2007 5:38 pm    Naslov sporočila: Program crash Odgovori s citatom

Pri družini 8051 programiranih v Bascomu torej tudi pri atmelih 8252 in 4051 velja, da prosti RAM, ki ostane potem, ko definiraš vse spremenljivke je uporabljen za Program Stack, se pravi, da tja spravlja program naslove, kam naj se vrne, ko skoči v podprogram, tja spravlja spremenljivke, (registre) ki jih bo uporabil v prekinitvenih podprogramih in tja lahko tudi programer začasno spravlja kakšne podatke.
Če je potreba po takem servisu večja kot je rama na razpolago, ko smo definirali vse spremenljivke, (Glej pri prevajanju bascoma na Show Result in v njem Stack Start) potem se zgodi nepredvidljivo, kar je v 99% popolni polom programa.

Ker je naslov zadnjega bajta pri 8252 HFF in pri 4051 H7F tedaj naj bo
stackstart pri programih za 4051 največ h5F in pri 8051 hDF rajši pa manj. Ne držite me za pravilo, ker je potreba po stacku odvisna od zapletenosti programa, kaj vse uporabljete v njem (Uart, LCD, 1wire i2c) in kako uporabljate prekinitve.

_________________
Sliši se paradoksalno, a je vendarle res:
Nekateri ljudje imajo vedno vse prav. No, včasih.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
zlabo
Mojster


Pridružen/-a: Pet Sep 2006 15:17
Prispevkov: 23

PrispevekObjavljeno: Čet Mar 22, 2007 6:02 pm    Naslov sporočila: Odgovori s citatom

jaz delam z mega8535 (sem pozabil povedati Embarassed ) in se mi program po nekaj izvedenih podprogramih "obesi". Stack start je pa 25F
je pa res, da je koda zelo začetniška, verjamem da se bo marsikdo smejal kodi Laughing

http://freeweb.siol.net/alekskor/alarm.bas
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 555
Kraj: Ljubljana

PrispevekObjavljeno: Čet Mar 22, 2007 6:36 pm    Naslov sporočila: stevilo spremenljivk Odgovori s citatom

Pozdravljen,
malo sem pogledal tvojo kodo in že na prvi pogled, ena od napak je
Koda:
If T = 14 Then
Gosub Meni1
End If

iz tega potprograma se moraš vrniti z return, tega pa ne narediš!

Kako imaš nastavljene 'HW Stack, SW Stack in Framesize' ?
Zakaj imas spremenljivke Cona1 in 2 definirane kot Byte, lahko jih imaš kot Bit ker so vezane za stanje na pin-u!

Za HW stack, SW stack in Framesize je težko svetovati, lahko jih povečaš (Options, Compiler, Chip), za kaj več bo potrebno pogledati v Help. Lahko pa ti povem da izpis na LCD 'požre' kar nekaj Framesize.
Vlado
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
zlabo
Mojster


Pridružen/-a: Pet Sep 2006 15:17
Prispevkov: 23

PrispevekObjavljeno: Čet Mar 22, 2007 9:05 pm    Naslov sporočila: Odgovori s citatom

hm, odziv je vedno enak, neglede na to če nastavim vse te tri vrednosti na maximum (da je pokrit skoraj ves pomnilnik), ali pa če jih dam vse na 1. Prav tako tudi če so nastavljene kakšne vmesne vrednosti, ni spremembe pri delovanju.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Digitalna elektronika Časovni pas GMT + 1 ura, srednjeevropski - zimski čas
Pojdi na stran 1, 2  Naslednja
Stran 1 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
You cannot attach files in this forum
You cannot download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group