rådgivning om tidstællere i pic 18f452

S

shaneelal

Guest
Hi, I "m designe en wire hastighed meter for mig svejsning. Tråden spins et optisk akslen kodeenhed. Jeg er nødt til at bestemme hastigheden af wiren. Jeg har besluttet at bruge to timere af PIC18f452. Timer0 til tiden 100 pulser som er den
1. revolution, og timer1 som en tæller at tælle 100 pulses.For timer0 skal jeg bruge 8 eller 16 bit timeren?
For prescalar jeg tænkte at bruge 1:256, rådgivning?Skal jeg bruge som min timer0 uret kilde - overgang på točki pin eller intern instruks ur.For timer1 kilde kant vælge bit det gør en forskel mellem at vælge høj til lav, eller lav til høj for ekstern overgangen om točki pin, jeg formoder, det eneste spørgsmål, hvis jeg sender et ursignal i pic på at pin.
For timer0 som jeg "m bruger som et modspørgsmål:
hvordan gør jeg det en asynkron counter?

Efter hver 100 pulser jeg vil rydde counter og optage det på tide at finde den hastighed.Jeg kan tage to gange og find gennemsnittet.

Hvis jeg ding noget forkert, plz fortæl mig.
Hvis du kender en bedre måde kan du fortælle mig.

 
Hej

Jeg har et spørgsmål?
Hvordan ru få input? (Dvs. bælgsæd)
R u bruger CCP afbryder?eller ekstern afbryder?
Vil u get 0-5 V puls som input til dit system?Hilsen
GopiLagt efter 24 sekunder:Hej

Jeg har et spørgsmål?
Hvordan ru få input? (Dvs. bælgsæd)
R u bruger CCP afbryder?eller ekstern afbryder?
Vil u get 0-5 V puls som input til dit system?Hilsen
Gopi

 
Hej

Du kan bruge og eksterne afbryder pin som input.I ISR simpelthen tilvækst en tæller, og med jævne mellemrum læse / nulstille den
ved hjælp af den timer0 afbryder.Pas på med timeren reload værdi eller tælleren bredde, så den vil ikke overflow (ved maksimal hastighed) mellem to behandlinger.Også holde øje med planlægningen af timerne.Hvis du bruger timer i 16 bit-tilstand, skal du konfigurere den første i 16 bit og derefter skrive de værdier, ellers øvre byte vil ikke blive skrevet.

Venlig hilsen

 
Takket x_zoli,
jeg vil se på din idé.
Swapgo jeg vil være at få 0 - ca 5v input fra akslen kodeenhed, efter at produktionen af kodningsmaskinen gennem et lavpasfilter og komparator.

 
Hej

Så Giv input til afbryder bæreakslen og initialisere nogen timer inde i afbryder ISR.Helst TIMER1.fordi en 16bit counter.
nu beregne tid mellem to eksterne interrupts.U kan beregne den hastighed, hvormed revolution med det.

hvis din timerindstilling register owerflows bare have en variabel i timeren ISR til at holde styr på antallet af gange sin overfyldte og beregn tid mellem to eksterne interrupts.

har en dejlig dag
Gopi

 
Tak for al den rådgivning.Swapgo, mener jeg, at tiden mellem pulser vil være den samme, så det giver ikke mening timing.Jeg enten tælle antallet af pulser i et bestemt tidspunkt, eller finde tid til en certian antallet af pulser.Jeg planlægger at bruge sidstnævnte.Jeg var også rådes til at anvende eksterne hardware, ved hjælp af to kløft ved N counters og flip-flops, jeg kun har adgang til at opdele mine 10 counters så det
er derfor, jeg sagde to.Hvis nogen ved, hvordan jeg kan gennemføre (hvad arrangement) denne eksterne hardware design, plz fortæl mig.
Jeg tænkte jeg kunne have en afbryder som pulser gå i ekstern hardware, og også en anden afbryder efter 100 pulser er blevet optalt.Jeg vil tiden mellem interrupts.
Akslen kodeenhed Jeg bruger har 100 pulser / revolution.
På 10revs/sec, at der er 1000 tæller / sek.
Jeg ønsker ikke at have en afbryder på hver puls, forårsage Jeg vil holde PIC for travlt.Enhver hjælp vil blive værdsat.

 

Welcome to EDABoard.com

Sponsor

Back
Top