Sida 1 av 1

CCP-modulen, är jag ute och cycklar?

Postat: 5 mars 2007, 12:52:14
av TomasL
Skall mäta varvtalet på en motor.
Eftersom jag aldrig någonsin behövt använda CCP-modulen förut, så undrar jag om jag är rätt ute, eller helt ute och cycklar?

Om jag förstått saken rätt, så laddas modulen med ex.vis tmr1 när nått händer på ccp-pinnen, typ stigande signal.
jag får då ett interrupt, läser av innehållet i ccp'n och väntar på nästa händelse, då läser jag av ccp'n igen, skillnaden mellan dessa värden borde då vara periodtiden, dvs inversa frekvensen, då jag vet antalet pulser per varv, multiplicerar jag detta med pulstiden, inverterar och får varvtalet.

Är detta rätt tänkt, naturligtvis får jag ta hänsyn till timerns periodtid osv.

Postat: 5 mars 2007, 13:40:15
av Icecap
Bingo! Du har helt rätt!

Postat: 5 mars 2007, 14:04:10
av TomasL
Kors i taket, första försöket :lol:

Postat: 5 mars 2007, 17:31:35
av sodjan
Tillkommer lite pyssel som att ta hänsyn till om TMR1
har "slagit runt", anpassning till ett varierande varvtal o.s.v.
Men visst, "på pappret" är det enkelt... :-)

Vid högre varvtal kan det ibland vara enklare att mäta
antal pulser på en *känd* tid (istället för tiden för *en* puls).
Det beror lite på vilken upplösning man har valt på TMR1 o.s.v.
Men samtidigt kan det också vara enklast att alltid ha samma
mätmetod, så klart.

Postat: 5 mars 2007, 17:42:52
av Icecap
Jovisst, hinner TMR1 att slå runt 2 gg eller mer ska man pyssla lite mer men om man väljer räknehastighet så att den inte kan slå runt mer än 1 gg är läget lugnt: när man subtraherar sluttid från starttid räknas det "automatisk" rätt.

Postat: 5 mars 2007, 18:02:15
av TomasL
Som alternativ bör man kunna använda, säg tmr0 ladda en lämplig divisorn och klocka den via en pinne, låta tmr1 snurra på intern/extern klocka med lämplig divisor och interupt, sedan läsa timer0 och se hur många pulser man fått.

Postat: 5 mars 2007, 20:30:57
av Icecap
Nja.... det beror ju på vilken upplösning du vill ha. Ska den vara 1RPM ska du mäta 30 sek på en 4-cyl 4-takt.

Men att mäta över 8 pulser t.ex. och få jämnat ut lite kan vara bra.