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 

časovniki ???
Pojdi na stran 1, 2  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
lerosmile
Član
Član



Pridružen-a: Ned 26 Mar 2006 11:15
Prispevkov: 12
Aktiv.: 0.05

PrispevekObjavljeno: Sob Apr 29, 2006 7:10 pm    Naslov sporočila:  časovniki ??? Odgovori s citatom

Zanima me kako v praksi rešujete probleme z časovniki??16f84a ima denimo samo en register TMRO ,kateri se uporabi kot časovnik ,jaz pa bi jih poteboval več!!!
Malo sem pregledoval dokumentacijo tudi od drugih "močnejših" PIC-ov - ti pa imajo največ po tri registre z časovniki.V službi imamo kar še nekaj večjih priprav(strojev) katere elegantno krmiljo krmilniki z INTELOM 8085.Če ima kdo kako idejo prosim če jo posreduje.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Sob Apr 29, 2006 7:39 pm    Naslov sporočila:   Odgovori s citatom

Zanimivo, da ljudje kot PIC poznajo le " legendo X84" ko Confused Pin-kompatibilen 16F628 ima 2x več pomnilnika nekaj več periferije 3 timerje poleg tega pa je vsaj za tretjino cenejši od "opevane" 84".
Ko sem pred časom v HTE-ju vpraša lza primerjavo glede prodaje 84 <-> 628 sem bil presenečen, ko mi je trgovec rekel, da bistevno več prodajo "84". Sicer je to razumljivo. Mikrokontroler je bil svoj čas najbolj razširjen. Na spletu se najde ogromno aplikacij narejenih s "84" -ko. Kupujejo pa jih po večini tisti, ki ne znajo programirat in želijo kako tako aplikacijo izdelat.
(sam "84" nisem kupil od kar je na trgu dobavljiv "628" )

_________________
lp
Silvo


Nazadnje urejal/a Silvo Sob Apr 29, 2006 7:43 pm; skupaj popravljeno 2 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Sob Apr 29, 2006 7:40 pm    Naslov sporočila:   Odgovori s citatom

Probleme resujemo tako, da uporabimo MCU, ki ustreza specifikaciji aplikacije. Ce aplikacija zahteva tri timerje in morajo biti med seboj neodvisni oz. si ne moremo privosciti zapravljanja ciklov z uporabo skupnega timerja, uporabimo takega s tremi timerji. Ocitno v vsaem podjetju pocnejo enako.

Kaj bi pravzaprav sploh rad naredil (= kaksne so zahteve) ? Ce postavis konkretno vprasanje, bos dobil tudi konkretne odgovore Wink
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
RGorazd
Član
Član



Pridružen-a: Čet 20 Maj 2004 15:57
Prispevkov: 1714
Aktiv.: 7.24
Kraj: Ig

PrispevekObjavljeno: Sob Apr 29, 2006 8:06 pm    Naslov sporočila:   Odgovori s citatom

Pri časovno ne tako kritični aplikaciji, kjer ti kaka ms ne pomeni hujšega problema, lahko enostavno furaš z enim samim časovnikom, kjer na določeno periodo povečuješ stanje n števcev. V programu pa samo preverjaš, kdaj je neka spremenljivka dosegla vrednost, postaviš zastavico in jo resetiraš. Pri taktu nekaj MHz ti par vrstic dodatne kode ne bo predstavljalo bistvene zakasnitve. A to velja zgolj za kot že omenjeno časovno nekritične aplikacije. Tam kjer imaš nekaj relejev in časovnikov na potenciometre, lahko vse zamenjaš z enim PICem...

LP Gorazd

_________________
.
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._|
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
lerosmile
Član
Član



Pridružen-a: Ned 26 Mar 2006 11:15
Prispevkov: 12
Aktiv.: 0.05

PrispevekObjavljeno: Sob Apr 29, 2006 9:27 pm    Naslov sporočila:   Odgovori s citatom

odgovor Silvu: 16F84a je bil naveden kot primer zelo uporabljanega PIC-a z enim časovnim registrom.Vem za 628 da ima tud še enkrat večji eeprom, 3xveč RAM-a,notranji clock, 2 pina za uporabo več ..... Odgovoril pa mi nisi prav nič!!!!!

Z krmilji se ukvarjam kar že nekaj časa ,v glavnem kot serviser ,pri kaki predelavi stroja pa tudi popravim ,dodam ali celo napišem nov program v S5,S7(siemens) ali MELSOFT-u(mitsubishi).Pri teh orodjih imaš na uporabo ogromno časovnikov in števcev.Če programiraš neko pripravo se srečaš z problemom da potrebuješ časovnike(v določenem času se mora nekaj zgoditi , ali omejiš stvar z nekim časom...)Vem pa da je pri nas do nedavnega "laufala" celo galvansko linijo krmilje MISIGA katero srce je INTEL 8085 -iz leta 1976.Pred tednom sem popravljal erozijski stroj INGERSSOL letnik 1997 ampak ima 3 CPU karte z 8085 procesorjem.Tu je uporabljeno ogromno časovnikov(za odmikanje in krmiljenje generatorja).V zbirniku pa sem delal zelo malo(samo nekaj za pripravniško nalogo pred 13 leti).Sedaj imam naložen mikroC in sem z njim zelo zadovoljen.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
lerosmile
Član
Član



Pridružen-a: Ned 26 Mar 2006 11:15
Prispevkov: 12
Aktiv.: 0.05

PrispevekObjavljeno: Sob Apr 29, 2006 9:41 pm    Naslov sporočila:   Odgovori s citatom

Pozabil sem napisati moj namen: sem pred predelavo starejšega plastinjektorja in bi uporabil mikrokontroler z 33i/o ,3-4 analogne vhode.V mislih imam 18F4520(zelo hiter,velik pomnilnik) ali pa mogoče tudi starejši 16f877a(odvisno od velikosti programa)
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Sob Apr 29, 2006 11:28 pm    Naslov sporočila:   Odgovori s citatom

Citiram:
odgovor Silvu: 16F84a je bil naveden kot primer zelo uporabljanega PIC-a z enim časovnim registrom.Vem za 628 da ima tud še enkrat večji eeprom, 3xveč RAM-a,notranji clock, 2 pina za uporabo več ..... Odgovoril pa mi nisi prav nič!!!!!


Kako vprašanje tak odgovor. Glede na prijazen odgovor ti tudi ne bom več. Si že na ignore listi. Le za info časovniki v picu ali krmilniku S5 ali S7 nimajo popolnoma nič skupnega. Po napisanem sodeč arhitekture pica ne poznaš.

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Apr 30, 2006 12:01 am    Naslov sporočila:   Odgovori s citatom

Še besedica o samih časovnikih. S pici delam praktično od prihoda na naš trg. Naredil sem dosti zelo zahtevnih aplikacij. Do sedaj še nisem čutil potrebe po rabi več kot treh časovnkov. Zadnja aplikacija delana za eno podjetje (šlo je za en regulator) Da je šlo za res obsežno aplikacijo priča podatek, da sem imel že imel "malo krizo" za programski pomnilnik, če prav pišem v assemblerju. Šlo je za pic 16F628 kode je ca 1900 vrstic uporabil sem dva časovnika.
Enostavno ne vem pri kaki aplikaciji bi jih potreboval več. Zanima me, če komu, ki se ukvarja s programiranjem picov niso dovolj trije časovniki. Če, potem naj malo podrobneje opiše aplikacijo, pri kateri se je zataknilo.

Konec kode - levo se vidi število vrstic:


_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
lerosmile
Član
Član



Pridružen-a: Ned 26 Mar 2006 11:15
Prispevkov: 12
Aktiv.: 0.05

PrispevekObjavljeno: Ned Apr 30, 2006 12:50 am    Naslov sporočila:   Odgovori s citatom

Gre se samo zato , če bi se dalo namesto dragega krmilnika uporabil cenejši PIC ,vem da je po arhitekturi povsem drugačna stvar.Mislil sem še vprašati ali je mogoče kdo že to uporabljal na strojih(mislim za krmilje).Naj ti podam samo primer Razzo drči spuščamo kos ,ki ga bomo uporabili v procesu(stroju) ,stikalo na vrhu drče je zaznalo ,da je kos spoščen v drčo kosa pa npr. ni v stroju - tu se naprimer v klasičnem programiranju PLC-jev uporabi časovnik.Če kos v npr. 2s ni v stroju ,bil pa je spuščen na drčo -se pojavi napaka npr. "NAPAKA DOZIRANJA".Pri delovanju stroja pa se takih situacij pojavlja veliko.
Ali pa nekaj takega :Cilinder dobi ukaz naj se pomakne iz 1. lege v 2.lego ,če cilinder ne pride v določenem času v zahtevano lego v določenem času mora stroj javit napako.

Ne vem Silvo ,zakaj si tako zameril saj si mi ti na moje "neumno" vrašanje odgovoril z tem da se kupuje Pic 16F84 namesto 628 ................Kupujejo pa jih tisti ki večinoma ne znajo programirat.

Glede tvoje znanja o PIC-h pa sploh ne dvomim ,ker sem že prej enkrat bral precej tvojih postov ,DA NE BO POMOTE.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Iztok
Član
Član



Pridružen-a: Pet 08 Okt 2004 0:55
Prispevkov: 4974
Aktiv.: 21.00
Kraj: LJ

PrispevekObjavljeno: Ned Apr 30, 2006 2:16 am    Naslov sporočila:   Odgovori s citatom

Če se malo znajdeš lahko tudi v PICu narediš skoraj poljubno število časovnikov. Postaviš si registre in jih uporabiš kot odštevalnike-števce, ki odštevajo ob interuptu. Seveda je potrebno zraven uporabit še kakšen bit (merker ali flag), da se vse izvaja po želji. Interupt TMR0 nastaviš, da se zgodi npr. 100x v sekundi. Na ta način lahko postaviš kar nekaj timerjev v resoluciji 1/100 sekunde. Če si zadovoljen z bolj grobo resolucijo lahko interupt deliš še z 10 ali 100 in dobiš še desetinke ter cele sekunde.
Tudi v "ozadju" Simatica ali podobnih se ne dogaja nič drugače, čeprav je resolucija nastavljiva na minimum 0.01 sek. = KT001.0 je to le teoretično. Če je program malo obsežnejši ti tiste stotinke hitro in precej zgrešijo, ker se procesna slika ne prenaša več tako hitro na izhode oziroma iz vhodov v program. Zato je PIC zaradi interuptov celo preciznejši in se ne "mudi" s PIO načinom in podobnim luksuzom, ker ukaze na I/O za razliko od večine PLCjev izvaja in sledi kar sproti.

Se pa programiranje PLCjev in PICa razlikuje toliko, da je potrebno malce spremeniti način programerskega razmišljanja ... Wink
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
lerosmile
Član
Član



Pridružen-a: Ned 26 Mar 2006 11:15
Prispevkov: 12
Aktiv.: 0.05

PrispevekObjavljeno: Ned Apr 30, 2006 3:01 am    Naslov sporočila:   Odgovori s citatom

to pa se mi zdi super rešitev,bravo Iztok
Applause Applause Applause
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Apr 30, 2006 8:05 am    Naslov sporočila:   Odgovori s citatom

Iztok je napisal/a:

...Če se malo znajdeš lahko tudi v PICu narediš skoraj poljubno število časovnikov. Postaviš si registre in jih uporabiš kot odštevalnike-števce, ki odštevajo ob interuptu. Seveda je potrebno zraven uporabit še kakšen bit (merker ali flag), da se vse izvaja po želji. Interupt TMR0 nastaviš, da se zgodi npr. 100x v sekundi. Na ta način lahko postaviš kar nekaj timerjev v resoluciji 1/100 sekunde. Če si zadovoljen z bolj grobo resolucijo lahko interupt deliš še z 10 ali 100 in dobiš še desetinke ter cele sekunde.
...


Točno tako. Najlažje je v aplikaciji uporabit kar kako TMR prekinitev. S korekcijo samega števca določiš točen interval prekinitve. Sedaj glede na časovni interval prekinitve ter štetje prekinitev lahko določiš poljubno število časov. Seveda še zraven "delaš" tudi kaj drugega.
Res, da včasih pride potreba po uporabi dveh (ali več) časovnikov sinhrono - istočasno. Recimo enostaven primer je frekvencmeter. (v točno določenem časovnem intervalu bomo šteli impulze), če procesor skrbi še za kako multiplex-no osveževanje displeja pa je mera polna. Enostavna stvar postane dokaj "komplicirana". Confused

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Ned Apr 30, 2006 10:56 am    Naslov sporočila:   Odgovori s citatom

Za tako aplikacijo je povsem dovolj en sam timer - tudi racunalnik, na katerem to tipkas (ki mora sinhronizirati oz. casovno porazdeliti precej krame), "prezivi" prakticno samo z enim timerjem za vecino stvari.

Glede na omejenost arhitekture bi stvar lahko izvedel se malenkost bolj ucinkovito, kot je predlagal Iztok: namesto da interrupt handler odsteva/pristeva vse stevce, spreminja samo vrednost glavnega stevca (npr. vsako stotinko ali desetinko sekunde), koda, ki preverja ali je prislo do overflowa pa primerja (odsteva/sesteva) zacetno nastavitev vsakega posamicnega casovnika (npr. enega imas za napako pri doziranju, itd., nastavljivi asinhrono) s tem stevcem.

Ce ne vodis locene "evidence" overflowov za vsakega od tvojih timerjev posebej, je kode v drugem primeru malenkost manj, interrupt handler je manj obsezen (ni potrebe po popravljanju vrednosti vsakega timerja) in posledicno aplikacija bolj odzivna (razlika bi bila posebej opazna pri visoki frekvenci interrupta in velikem stevilu timerjev). Glavni program je v obeh primerih enako ucinkovit, kar se tice stevilka ciklov CPUja in stevila ukazov v kodi. V prvem primeru imas za vsak timer incf/decf v interrupt handlerju in movf, xorlw in btfsc/btfss v glavnem programu, v drugem pa ni v interrupt handlerju nobenega ukaza za posamezen timer (samo en incf/decf za glavni stevec), v glavnem programu pa je za preverjanje vsakega timerja en kombinacija movf, subfw/addfw in btfsc/btfss.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Apr 30, 2006 11:23 am    Naslov sporočila:   Odgovori s citatom

>Za tako aplikacijo je povsem dovolj en sam timer...

Seveda, hotel sem le nakazati primer izvajanja več zadev v istem realnem času.
V zgoraj opisanem primeru - "frekvencmeter" je čisto dovolj en timer katerega bi uporabil kot števec impulzov. Časovno konstanto pa bi generiral s PC-jem (programskim števcem), torej proceduro, ki se bi izvajala točno določen čas.
Čisto lepo se da namreč narediti frekvencmeter recimo z "84" malo več "telovadbe" je le ker je TMR0 le 8 biten. Treba je uporabit preddelilnik, s katerega pa ni možno dirktno čitati.

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Ned Apr 30, 2006 12:41 pm    Naslov sporočila:   Odgovori s citatom

Silvo, se strinjava v celoti - moj odgovor je bil na originalno vprasanje (zastavljeno v zacetku teme) ter nekaj dodatnih predlogov glede na ostale odgovore, ki jih je mozak ze dobil.
Nazaj na vrh
Skrit 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 -> Microchip PIC Časovni pas GMT + 2 uri, srednjeevropski - poletni č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
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 492 dni


Powered by phpBB © 2001, 2005 phpBB Group