|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
BojanR Član
Pridružen-a: Tor 08 Apr 2008 9:52 Prispevkov: 684 Aktiv.: 3.50 Kraj: Vnanje Gorice
|
Objavljeno: Sre Jun 08, 2011 7:44 am Naslov sporočila: Pogostnost pojava |
|
|
Imam primer, ko se mi nek dogodek zgodi naključno v nekem času. Rad bi spremljal pogostnost tega pojava. Na primer kolikokrat se je pojavil v zadnji uri. Pri tem pa ne bi rad po preteku ure števec resetiral, ampak bi rad temu dogodku dal veljavnost eno uro. Tako bi imel vedno realno število v eni uri (FIFO)
Ali obstaja kakšen eleganten način, da to programsko rešim (Atmega8), saj je lahko v eni uri 5 ali pa 1000 dogodkov.
Pri mojem razmišljanju se mi je zmerom močno zakompliciralo. |
|
Nazaj na vrh |
|
|
. Član
Pridružen-a: Pon 23 Avg 2004 16:16 Prispevkov: 16777190 Aktiv.: 75257.29
|
Objavljeno: Sre Jun 08, 2011 11:20 am Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika. |
|
Nazaj na vrh |
|
|
BojanR Član
Pridružen-a: Tor 08 Apr 2008 9:52 Prispevkov: 684 Aktiv.: 3.50 Kraj: Vnanje Gorice
|
Objavljeno: Sre Jun 08, 2011 1:06 pm Naslov sporočila: |
|
|
Eno-sekundna ločljivost je dovolj. Je pa še en problem. Dolžina dogodka je lahko od 0,2 do 4 sekunde.
Ampak približno razumem kaj si mi svetoval, hvala. Se bom na tak način lotil zadeve. |
|
Nazaj na vrh |
|
|
Peter123 Član
Pridružen-a: Tor 13 Jan 2009 15:34 Prispevkov: 1366 Aktiv.: 7.34 Kraj: Lj.
|
Objavljeno: Sre Jun 08, 2011 1:29 pm Naslov sporočila: |
|
|
Jaz zadevo takole razumem:
Rabiš 2 števca:
1. šteje dogotke
2. šteje čas, ko mine 1h ali podobno prebere koliko je bilo dogotkov ter zadevo vpiše v E2 in zbriše 1. števec.
Torej imaš narejeno logiranje po urah. |
|
Nazaj na vrh |
|
|
BojanR Član
Pridružen-a: Tor 08 Apr 2008 9:52 Prispevkov: 684 Aktiv.: 3.50 Kraj: Vnanje Gorice
|
Objavljeno: Sre Jun 08, 2011 2:01 pm Naslov sporočila: |
|
|
Hvala tudi za tvoj predlog, ampak ti zveš koliko dogodkov se je zgodilo med npr. 11:00 in 12:00, mene pa zanima zadnja ura. Ker lahko da se je od 11:50 do 12:00 zgodilo 40 dogodkov, ampak na tvoj način bi ob 12:00 pokazalo 0 dogodkov. |
|
Nazaj na vrh |
|
|
MarkoM Član
Pridružen-a: Tor 12 Sep 2006 15:29 Prispevkov: 2825 Aktiv.: 13.17 Kraj: Lovrenc na P.
|
Objavljeno: Sre Jun 08, 2011 2:48 pm Naslov sporočila: |
|
|
Time stamp delaš. Ob vsakem dogodku, kamor pač shraniš podatek, dodaš podatek o uri. Narediš pa krožni pomnilnik, da ga ne zmanjka. Zadnje podatke boš vedno imel na voljo.
Ali ne razumem težave? |
|
Nazaj na vrh |
|
|
Silvo Moderator
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14555 Aktiv.: 65.29 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sre Jun 08, 2011 2:50 pm Naslov sporočila: Re: Pogostnost pojava |
|
|
BojanR je napisal/a: |
Imam primer, ko se mi nek dogodek zgodi naključno v nekem času. Rad bi spremljal pogostnost tega pojava. Na primer kolikokrat se je pojavil v zadnji uri. Pri tem pa ne bi rad po preteku ure števec resetiral, ampak bi rad temu dogodku dal veljavnost eno uro. Tako bi imel vedno realno število v eni uri (FIFO)
Ali obstaja kakšen eleganten način, da to programsko rešim (Atmega8), saj je lahko v eni uri 5 ali pa 1000 dogodkov.
Pri mojem razmišljanju se mi je zmerom močno zakompliciralo. |
Če sem prav razumel napisano se mi zdi to dokaj enostavno. Načeloma bi to šlo izvesti z zelo preprostim mikrokontrolerjem. (praktično s vsakim tiny-em) Izbira pred vsem na število pinov, glede na to kak prikazovalnik bi želel uporabiti.
Nisem zasledil, če bi želel tudi meriti skupni čas trajanja dogodkov ali le te šteti. Prav tako nisem zasledi kak je minimalni čas trajanja dogodka.
Sam se bi zadeve lotil takole:
Uporabil bi en timer oz njegovo prekinitev. S pomočjo te prekinitve bi generiral takt 1S. V nadaljevanju bi mi služilo za meritev časa. V tej prekinitveni rutini bi tudi multipleksiral ter osvezževal prikazovalnik v koliko bi uporabil led prikazovalnik.
Dogodke bi štel z zunanjo prekinitvijo. V primeru rabe LCD-ja bi tukaj tudi osveževal prikaz. _________________ lp
Silvo |
|
Nazaj na vrh |
|
|
Silvo Moderator
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14555 Aktiv.: 65.29 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sre Jun 08, 2011 2:54 pm Naslov sporočila: |
|
|
Citiram: |
Nisem zasledil, če bi želel tudi meriti skupni čas trajanja dogodkov ali le te šteti. Prav tako nisem zasledi kak je minimalni čas trajanja dogodka. |
Aha tole sem prebal v nadaljevanju. 200mS je "zelo dolg" čas. Tako da izvedba, ki sem jo napisal zgoraj ne bi bila problematična. _________________ lp
Silvo |
|
Nazaj na vrh |
|
|
. Član
Pridružen-a: Pon 23 Avg 2004 16:16 Prispevkov: 16777190 Aktiv.: 75257.29
|
Objavljeno: Sre Jun 08, 2011 3:04 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika. |
|
Nazaj na vrh |
|
|
igo Član
Pridružen-a: Sre 11 Okt 2006 19:11 Prispevkov: 3638 Aktiv.: 17.04
|
Objavljeno: Sre Jun 08, 2011 4:13 pm Naslov sporočila: |
|
|
"1" vedno traja manj kot 6 bitov (64*0,2).
"0" z zelo veliko verjetnostjo traja manj kot 14 bitov (16348*0,2)
Za kodiranje enega cikla impulz/pavza rabiš 20 bitov.
Malo zahtevneje je potem izračunati nazaj po bufferju po 20 bitov in seštevati trajanje pavz in impulzov do ene ure. Se pa da.
Če je dovolj poznati trajanje pavze na 1s natančno, pa pavza traja največ 12 bitov (4096*1), zato en cikel porabi 18 bitov.
Če cikle navidezno zajameš kot 8bitne ASCII vrednosti in vse skupaj še "zazipaš" si pa sploh ujel kaitalca. _________________ Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor |
|
Nazaj na vrh |
|
|
Silvo Moderator
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14555 Aktiv.: 65.29 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sre Jun 08, 2011 8:58 pm Naslov sporočila: |
|
|
Sedaj sem razumel kaj bi Bojan pravzaprav rad. Ena iz med možnosti uporaba čim večjega (več) pomičnih registrov. (Morda izvedba s kakim gal-om oz programibilno logiko? ) Vhod v register bi predstavljal dogodek. Clock bi bil pogostost meritve. "Dolžina" registra bi morala biti 1h. Števec bi dogodke v register prišteval ter tiste iz registra odšteval. Izvedba z mikrokontrolerjem bi bila najenostavnejša tako, da bi shiftal sram. _________________ lp
Silvo |
|
Nazaj na vrh |
|
|
BojanR Član
Pridružen-a: Tor 08 Apr 2008 9:52 Prispevkov: 684 Aktiv.: 3.50 Kraj: Vnanje Gorice
|
Objavljeno: Čet Jun 09, 2011 7:58 am Naslov sporočila: |
|
|
Bi moral 3600 bitov vsako sekundo shiftat in v zadnjega vpisati dogodek, če se je zgodil.
Sem mislil, da mogoče obstaja kakšna preprosta in ne tako požrešna rešitev. Čeprav je par zelo zanimivih idej. Tista z meritvijo dolžine dogodka in pavze je zelo zanimiva, izvedljiva in požre najmanj spomina, če je dogodkov malo.
Hvala vsem za nasvete, bom probal Maretovo idejo udejaniti, če ne bo šlo, bom pa sprejel še kakšen kompromis , pa za pomoč zaprosil. |
|
Nazaj na vrh |
|
|
red_mamba Član
Pridružen-a: Ned 20 Feb 2005 17:56 Prispevkov: 1486 Aktiv.: 6.67 Kraj: Yogyakarta
|
Objavljeno: Čet Jun 09, 2011 9:46 am Naslov sporočila: |
|
|
BojanR je napisal/a: |
Bi moral 3600 bitov vsako sekundo shiftat in v zadnjega vpisati dogodek, če se je zgodil.
Sem mislil, da mogoče obstaja kakšna preprosta in ne tako požrešna rešitev. Čeprav je par zelo zanimivih idej. Tista z meritvijo dolžine dogodka in pavze je zelo zanimiva, izvedljiva in požre najmanj spomina, če je dogodkov malo.
Hvala vsem za nasvete, bom probal Maretovo idejo udejaniti, če ne bo šlo, bom pa sprejel še kakšen kompromis , pa za pomoč zaprosil. |
imam jaz še eno izboljšavo glede šiftanja
sicer je malo bolj "zakomplicirana" ampak bi jo procesor hitreje izvedel kot šiftanje bitov.
šiftaš samo paket bitov iz enega long-a v drugega. In ko si prestavil 32 bitov kaskadno popraviš array[112] long vrednosti.
pri gledanju rezultatov pa imaš 111 long vrednosti fiksiranih za 32 sekund, in gledaš samo tvoji dve long spremenljivki ki jih vsako sekundo spreminjaš in zadnji long v array-u, ki mu pa vzameš ustrezno št. bitov
razumljivo? _________________ Bad things happen to good people all the time for no reason!
Blog |
|
Nazaj na vrh |
|
|
igo Član
Pridružen-a: Sre 11 Okt 2006 19:11 Prispevkov: 3638 Aktiv.: 17.04
|
Objavljeno: Čet Jun 09, 2011 10:21 am Naslov sporočila: |
|
|
Kakšno shiftanje neki?
Samo spremenljivke, ki kažejo na trenutno veljaven podatek se spreminja. Pomnilnik je itak krožen. Če je manj kot 2^n Byten, se pa spremenljivko vsakič primerja z nekim številom in po potrebi skoči na začetek.
In čisto vseeno je, koliko biten je osnovni paket podatka (16, 18, 20, ...). Če so znani začeten naslov, dolžina paketa in število paketov, ima vsak bit natanko znan pomen.
p.s.: Pisanje v Zbirniku precej olajša delo z 18, 20, ... bitnimi spremenljivkami, razen, če se jih da definirati tudi v višjih jezikih.
p.p.s.: Tisti " nekako "zazipaš" " bi pravzaprav moral imeti poudarek na narekovajih od "nekako". Zip zna ASCII datoteko stlačiti na par % začetne velikosti. Ve kdo, kako njegove matematične algoritme izvesti z MCU? _________________ Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor |
|
Nazaj na vrh |
|
|
red_mamba Član
Pridružen-a: Ned 20 Feb 2005 17:56 Prispevkov: 1486 Aktiv.: 6.67 Kraj: Yogyakarta
|
Objavljeno: Čet Jun 09, 2011 11:41 am Naslov sporočila: |
|
|
igo je napisal/a: |
Kakšno shiftanje neki?
Samo spremenljivke, ki kažejo na trenutno veljaven podatek se spreminja. Pomnilnik je itak krožen. Če je manj kot 2^n Byten, se pa spremenljivko vsakič primerja z nekim številom in po potrebi skoči na začetek.
In čisto vseeno je, koliko biten je osnovni paket podatka (16, 18, 20, ...). Če so znani začeten naslov, dolžina paketa in število paketov, ima vsak bit natanko znan pomen.
p.s.: Pisanje v Zbirniku precej olajša delo z 18, 20, ... bitnimi spremenljivkami, razen, če se jih da definirati tudi v višjih jezikih.
p.p.s.: Tisti " nekako "zazipaš" " bi pravzaprav moral imeti poudarek na narekovajih od "nekako". Zip zna ASCII datoteko stlačiti na par % začetne velikosti. Ve kdo, kako njegove matematične algoritme izvesti z MCU? |
to bi se dalo samo če bi lahko naslavljal na bit natančno, kar pa ne moreš kolikor je meni poznano. Ti lahko naslavljaš podatke samo po bajtu naenkrat.
poleg tega pozabljaš da je šift operacija procesorsko najmanj zahtevna od vseh ukazov ki jih procesorji poznajo _________________ Bad things happen to good people all the time for no reason!
Blog |
|
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: 74 dni
Powered by phpBB © 2001, 2005 phpBB Group
|