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 

Merjenje časa v PIC-u

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



Pridružen-a: Sob 24 Dec 2011 22:33
Prispevkov: 51
Aktiv.: 0.31
Kraj: Maribor

PrispevekObjavljeno: Ned Jun 16, 2013 10:01 pm    Naslov sporočila:  Merjenje časa v PIC-u Odgovori s citatom

Nevem, če sem se pravilno izrazil v naslovu, bom kar tukaj opisal problem.
Torej izdelujem robosleda z možnostjo izogibanja oviram. Pogon bo preko servomotorčkov z odstranjeno elektroniko, črti bo sledil z IR senzorji, imam pa še ultrazvočni merilnik razdalje HC-SR04.
Tukaj nastane mali problem. Priklopljen imam triger na navadni digitalni vhod, medtem ko imam echo na CCP oz. PWM modul. Signal sprožim s trigerjem na 10us, zdaj pa bi ga moral še prebrati echo sihnal, oz. sprožiti časovnik ko pošljem triger in potem ko sprejmem signal.

Ne sprašujem za celotno kodo, zanima me samo, kako bi sprožil časovnik - točno kateri ukaz in kako ga potem prekinil, da bi lahko prebral kodo. Kot sem napisal imam zato rezerviran CCP modul.

Hvala za vaše odgovore Smile
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Highlag
Član
Član



Pridružen-a: Pet 23 Jan 2004 20:42
Prispevkov: 4034
Aktiv.: 17.03
Kraj: Črnuče

PrispevekObjavljeno: Ned Jun 16, 2013 10:37 pm    Naslov sporočila:   Odgovori s citatom

Nisi napisal s čim pišeš programe.

Ni mi popolnoma jasno kako imaš zadeve priključene, shema bi bila bolj uporabna. Se pa to dela nekako takole. Sprožiš timer ki ga napolniš z vrednostjo, ki v odvisnosti s tvojo frekvenco procesorja povzroči zaključek po 10us. Takrat mora timer sprožiti prekinitev, ki jo ti obdelaš - izvedeš kar koli že pač hočeš da se izvede po 10us. Nato delaš naprej karkoli si počel prej.

_________________
If at first you don't succeed, destroy all evidence that you tried.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Luksy
Član
Član



Pridružen-a: Sob 24 Dec 2011 22:33
Prispevkov: 51
Aktiv.: 0.31
Kraj: Maribor

PrispevekObjavljeno: Ned Jun 16, 2013 10:58 pm    Naslov sporočila:   Odgovori s citatom

Programsko kodo pišem z programom MikroC, shemo pa lahko prilepim iz eagla, če je potrebno.
V bistvu gre za to, da ko sprožim jaz meritev z trigerjem (10us signal) nekako vklopim časovnik ali števec ali kakorkoli bi se lahko temu reko in ga izklopim, ko dobim signal vrnjen iz echo-ta. Potem bi tisti signal prebral in izračunal razdaljo do objekta.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
MvE
Član
Član



Pridružen-a: Ned 04 Jan 2009 12:24
Prispevkov: 146
Aktiv.: 0.73
Kraj: MB

PrispevekObjavljeno: Pon Jun 17, 2013 12:29 am    Naslov sporočila:   Odgovori s citatom

Poglej si Microchip tricks&tips na strani 3-4 pod naslovom Measuring Pulse Width. Pojdi točno po navodilih in bo delovalo.

Drugače pa tako da vklopiš timer takoj po poslanem pulzu ni najboljša rešitev. že zaradi tega ker ne veš koliko časa je preteklo "od trigerja do echota", kolikor vem je v datashet-u omenjenega senzorja enačba s katero preračunaš razdaljo glede na čas trajanja pulza.

Poiskusi rešiti, v skrajnem primeru imam še shranjeno kodo za HC-SR04 napisano (celo) v mikroC Laughing
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Luksy
Član
Član



Pridružen-a: Sob 24 Dec 2011 22:33
Prispevkov: 51
Aktiv.: 0.31
Kraj: Maribor

PrispevekObjavljeno: Pon Jun 17, 2013 4:23 pm    Naslov sporočila:   Odgovori s citatom

MvE je napisal/a:
Poglej si Microchip tricks&tips na strani 3-4 pod naslovom Measuring Pulse Width. Pojdi točno po navodilih in bo delovalo.

Drugače pa tako da vklopiš timer takoj po poslanem pulzu ni najboljša rešitev. že zaradi tega ker ne veš koliko časa je preteklo "od trigerja do echota", kolikor vem je v datashet-u omenjenega senzorja enačba s katero preračunaš razdaljo glede na čas trajanja pulza.

Poiskusi rešiti, v skrajnem primeru imam še shranjeno kodo za HC-SR04 napisano (celo) v mikroC Laughing


Zdaj si mi pa dal za misliti. Če se prav spomnim so nam celo na faksu rekli, da merimo čas kdaj se signal vrne, pa vidim zdaj tukaj da temu ni tako, oziroma da obstaja še drugi način. Sedaj razumem princip.
Z 10us pulzom sprožim triger, potem čakam da se signal vrne in ko dobim na CCP vhodu 1 štejem čas, dokler ta ne upade nazaj na 0. Potem iz tistega izračunam dolžino?
Del programa za triger že imam, zdaj me zanima še samo kako namestim tisti timer, ki mi bo izmeril dolžino pulza? Je kakšen posebni ukaz za to v C jeziku?
Nazaj na vrh
Odsoten 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
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