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 

Timerji v Visual C#

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Periferija
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
gkrusi
Član
Član



Pridružen-a: Tor 24 Jul 2007 17:22
Prispevkov: 811
Aktiv.: 3.72
Kraj: Ptuj

PrispevekObjavljeno: Čet Avg 23, 2007 11:47 pm    Naslov sporočila:  Timerji v Visual C# Odgovori s citatom

Morda za to vprašanje nisem na pravem foromu, sem pa prepričan, da se je kdo s podobno zadevo že ukvarjal.

Delam si svoj software (za svoje zadovoljstvo in razširitev znanja) za CNC gravirnik in rezkalnik za TIV v Microsoft Visual C# 2005 (poznam tudi druge podobne verzije Wink ).
Zadeva že kar lepo deluje, razen časovnikov (timerji). Potrebujem namreč timer, ki bo vsako milisekundo spremenil položaj koračnih motorjev. Zadeva je navidez popolnoma preprosta, saj se timerji dajo nastavit na proženje 1 ms, a se ti na začudenje ne sprožijo 1000x v sekundi, temveč le dobrih 63x.

Za preizkus, sem izdelal preprost programček, ki sestoji iz petih timerjev, vsak ima 10x večji čas, ko se sproži, pa se izpiše število, kolikokrat se je že sprožil. Program sem zagnal in ustavil po točno 5 minutah, rezultati pa so takšni, kot jih prikazuje priložena slika Confused .

Ve kdo morda v čem bi lahko bila težava in kako bi se jo dalo odpravit?

V nasprotnem primeru je alternativa, da za to opravilo sprogramiram PIC-ov mikrokrmilnik, ki mu zakasnitve kar lepo delujejo Laughing . S tem pa si žal naložim kar nekaj dodatnega dela, pa tudi zadeva o timerjih bi me še vedno "mučila". Sad

V naprej hvala za odgovore!



Timer-ji.jpg
 Opis:
 Velikost datoteke:  12.43 KB
 Pogledana:  9858 krat

Timer-ji.jpg



_________________
Zakaj bi bilo preprosto, če je lahko zakomplicirano???


Nazadnje urejal/a gkrusi Pet Avg 24, 2007 3:06 am; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
bungee
Član
Član



Pridružen-a: Pon 07 Mar 2005 18:49
Prispevkov: 1479
Aktiv.: 6.24
Kraj: Ljubljana

PrispevekObjavljeno: Čet Avg 23, 2007 11:54 pm    Naslov sporočila:   Odgovori s citatom

Odgovor leži v naslednjem vprašanju. Kam prožiš signal. Če uporabljaš paralelni port, potem imaš težavo že s samim HW-jem. Druga stvar pa je še operacijski sistem, ki ti nagaja pri tem početju. Iz same številke 63 se pa še iz DOS časov spomnim, da je to število ponovitev, ki jih naredi en izmed interruptov v sekundi.

Problem programja, ki bazira na windowsih je OS sam. Rešitev tega problema je več. Najboljša je ta, da izdelaš ustrezen HW, kateremu potem pošiljaš ukaze in se le-ta ukvarja s točnostjo in številom ponovitev Wink
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
gkrusi
Član
Član



Pridružen-a: Tor 24 Jul 2007 17:22
Prispevkov: 811
Aktiv.: 3.72
Kraj: Ptuj

PrispevekObjavljeno: Pet Avg 24, 2007 12:04 am    Naslov sporočila:   Odgovori s citatom

Se mi je zdelo, da je težava v operacijskem sistemu, kajti opazil sem, da če prenosniku izključim zunanje napajanje, se hitrost tajmerjev še drastično zmanjša Evil or Very Mad .

Samo zakaj pa potem Visual C# sploh omogoča takšno hitrost prekinitev, če je nerealna?
Ali bi zadeva morda na katerem drugem računalniku bolje delovala?

Do sedaj še na zadevo nisem prikljuil hardwerja, bom pa naredil povezavo preko RS-232 s PIC-om. Nameraval sem mu poslati le podatek, katere tuljave katerega motorja naj vključi, bom pa mu moral očitno poslati zahtevan položaj in hitrost rezkarja, ostalo pa naj mikrokrmilnik sam uredi in naj mimogrede še poroča o dogojanju. Tako lahko pošteno zmanjšam število prekinitev. Aja, za RS-232 sem se odločil, ker še potrebujem kar nekaj drugih odčitkov, tako da je zadeva za parallel port preobsežna (vsaj kolikor vem).
Neverjetno, mikrokrmilnik za par €, je bolj uporaben, kot pa računalnik za nekaj 1000 € Evil or Very Mad Laughing !!!

_________________
Zakaj bi bilo preprosto, če je lahko zakomplicirano???
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
Sokrat
Član
Član



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

PrispevekObjavljeno: Pet Avg 24, 2007 12:34 am    Naslov sporočila:   Odgovori s citatom

Saj ni nerealna, le Windowsi niso RTOS. Jaz sem s PCom (v DOSu) meril intervale ranga nekaj deset mikrosekund, pa ni bilo nobenih tezav s tem, samo nic drugega se pac ni moglo takrat izvajati. V Windowsih se - ce ne drugega - mora izvajati vsaj scheduler, sicer bi sel cudoviti preemptive multitasking OS v franze Rolling Eyes

Aja pa se bolj neverjetno je to, da je kladivo za nekaj evrov bolj uporabno kot helikopter za nekaj sto tisoc evrov (za zabijanje zebljev) Shocked

_________________
Ka ti bo pa torba ce si kupu kolo ?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
gkrusi
Član
Član



Pridružen-a: Tor 24 Jul 2007 17:22
Prispevkov: 811
Aktiv.: 3.72
Kraj: Ptuj

PrispevekObjavljeno: Pet Avg 24, 2007 3:03 am    Naslov sporočila: icon_cool  Odgovori s citatom

Torej se bom moral sprijaznit s počasnostjo timerjev v Windows-u.
Kaj pa morda kakšne prekinitve? Da bi mikrokrmilniku daodelil nalogo, da preko svojega časovnika po RS-232 prekine program (mislim, da obstaja tukaj neka prekinitev) in bi tako dobil neke sorte zunanji timer. Ali bi se zgodilo enako, da bi operacijski sistem zadevo upočasnil do neuporabnosti?

Sokrat, kaj pa pomeni kratica RTOS? Think

gkrusi je napisal/a:
Neverjetno, mikrokrmilnik za par €, je bolj uporaben, kot pa računalnik za nekaj 1000 € Evil or Very Mad Laughing !!!

No ja, slaba primerjava, samo glede na razliko v ceni, je delovanje mikrokrmilnikov kar primerljivo z računalnikom. Seveda, če odštejemo operacijski sistem in podobno.... Laughing

_________________
Zakaj bi bilo preprosto, če je lahko zakomplicirano???
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
gkrusi
Član
Član



Pridružen-a: Tor 24 Jul 2007 17:22
Prispevkov: 811
Aktiv.: 3.72
Kraj: Ptuj

PrispevekObjavljeno: Pet Avg 24, 2007 3:12 am    Naslov sporočila:   Odgovori s citatom

Aha, že imam.

RTOS - Real Time Operating Systems

:google:

Mimogrede, kaj pa bi naj predstavljalo RTOS, kakšen poseben OS, ali ....?
Aja, pa sem premlad, tako da se na DOS ne spoznam kaj preveč, če je prav v DOS-u kakšna rešitev. Prvi računalnik ki sem ga imel je že uporabljal Windows 98. Mr. Green (nisem pa še na Visti Wink )

_________________
Zakaj bi bilo preprosto, če je lahko zakomplicirano???
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
trot
Član
Član



Pridružen-a: Čet 18 Jan 2007 20:25
Prispevkov: 1282
Aktiv.: 5.72
Kraj: glej fogl

PrispevekObjavljeno: Pet Avg 24, 2007 8:25 am    Naslov sporočila:   Odgovori s citatom

Prever si EMC ( http://www.linuxcnc.org/ ), ki temelji na RealTime Linuxi ( http://www.fsmlabs.com/ ).

Imaš zadevo že precej dodelano. Zadeva je open source. Oglej si, koliko in kakšna je koda, in ti bo jasno, da sam ne boš "spacal" enega kolikor toliko resnega programa. Raje uporabi, kar je že narejeno, in nadgrajuj to.

Če pa še vedno vztrajaš da boš sam, pa uporabi RealTime Linux.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Hi-End
Član
Član



Pridružen-a: Sre 25 Feb 2004 11:51
Prispevkov: 284
Aktiv.: 1.20
Kraj: Višnja Gora

PrispevekObjavljeno: Pet Avg 24, 2007 9:42 am    Naslov sporočila:   Odgovori s citatom

Timerji v System.Windows.Form ne zmorejo biti točni na takšno natančnost kot želiš. Timerje poganja z tickom priblizno 20ms, kolikor je tick Windows OS-a. Zakaj približno, ker pač Windowsi niso RTOS in uporabljajo krasen scheduler, ki pa za to kar ti potrebuješ ni uporaben. Že napaka pri 100ms intervalih je pri 1 minuti velika kar 52 tickov (namesto 600, jih je generiral samo 548-).
_________________
Music is a part of my life, DIY is my life !
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Benjamin
Član
Član



Pridružen-a: Tor 10 Jul 2007 11:23
Prispevkov: 116
Aktiv.: 0.53
Kraj: Trebnje, Ljubljana

PrispevekObjavljeno: Pet Avg 24, 2007 10:52 am    Naslov sporočila:   Odgovori s citatom

Hm, ne vem, bi mogoče pomagalo če bi nastavil prioriteto procesa na realtime, ali vsaj na visoko?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek4
Član
Član



Pridružen-a: Sob 18 Jun 2005 20:52
Prispevkov: 2952
Aktiv.: 12.46
Kraj: Tržič - Mesto med gorami

PrispevekObjavljeno: Pet Avg 24, 2007 11:06 am    Naslov sporočila:   Odgovori s citatom

Problem je, da ti timerji, če ga nastaviš na 1ms delujejo 1 ms. Samo že prej omenjeno preklaplanje programov in... 1 ms pomeni 1 ms čakanja.

Izvajanje timer rutine, 1 ms čakanja, timer rutina, 1 ms čakanja... Če se ti timer rutina izvaja 0.5ms to pomeni, da se bo zagnala na vsake 1.5ms.
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: Pet Avg 24, 2007 11:49 am    Naslov sporočila:   Odgovori s citatom

Benjamin je napisal/a:
Hm, ne vem, bi mogoče pomagalo če bi nastavil prioriteto procesa na realtime, ali vsaj na visoko?


V tem primeru bi bilo manj slabo. Se vedno bi pa bilo slabo. Za vsako nalogo obstajajo bolj in manj primerna orodja in Windowsi niso primerno orodje za RT zadeve (pa se za marsikaj drugega ne).

_________________
Ka ti bo pa torba ce si kupu kolo ?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
.
Član
Član



Pridružen-a: Pon 23 Avg 2004 16:16
Prispevkov: 16777190
Aktiv.: 70824.89

PrispevekObjavljeno: Pet Avg 24, 2007 12:21 pm    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
tonko
Član
Član



Pridružen-a: Sob 25 Jun 2005 13:45
Prispevkov: 541
Aktiv.: 2.28
Kraj: Črnomelj

PrispevekObjavljeno: Pet Avg 24, 2007 12:23 pm    Naslov sporočila:   Odgovori s citatom

Jaz sem pred leti naredil en program za Graviranje v Turbo C++ za DOS.
Bere HPGL in poganja koračne motorje na LPT portu.

CNC-GRAV.EXE - ZIP



CNC-GRAVIRANJE.ZIP
 Opis:

Download
 Ime datoteke:  CNC-GRAVIRANJE.ZIP
 Velikost datoteke:  44.13 KB
 Downloadano:  13 krat

Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
gkrusi
Član
Član



Pridružen-a: Tor 24 Jul 2007 17:22
Prispevkov: 811
Aktiv.: 3.72
Kraj: Ptuj

PrispevekObjavljeno: Sob Avg 25, 2007 4:40 am    Naslov sporočila:   Odgovori s citatom

Zanimiv program tonko. Moj pa bo izgledal nekako tako, kot na priloženi sliki. Res ne bo preveč kompleksen, a bo za izdelavo TIV in za graviranje čisto primeren. Sprejema pa format *.pbm (Portable Bitmap), tako da se da kakršno koli sliko, tekst ali vezje pretvorit v ta format, pa tudi izdelava softwerja je na ta način dokaj preprosta in tudi nadgradljiva v 3D verzijo, za rezkanje (uporabim lahko dokaj preprosto matematiko).

Kot opažam, se bom raje odpovedal RTOS, je kar zakomplicirana zadevica Cool . Vseeno, hvala za pomoč!



Homemade CNC krmilnik.jpg
 Opis:
 Velikost datoteke:  365.46 KB
 Pogledana:  40 krat

Homemade CNC krmilnik.jpg



_________________
Zakaj bi bilo preprosto, če je lahko zakomplicirano???
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-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 -> Periferija Č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: 492 dni


Powered by phpBB © 2001, 2005 phpBB Group