Hejsan, håller på att tillverka en varvräknare för tillfället, och fick se i en annan tråd att man skulle använda sig av CCP modulen (Capture, compare, pwm) Och eftersom att 16f877(som jag använder) stödjer detta så tyckte jag att det verkade lämpligt. Nu till den egentliga frågan, hur använder man sig utav detta i picbasic? är det någon som har något kodexempel?
Har sökt i picbasic manualen och 16f877 manualen, men jag förstår inte riktigt.
Det enda som verkade intressant var detta:
DEFINE CCP1_REG PORTC Hpwm 1 pin port
DEFINE CCP1_BIT 2 Hpwm 1 pin bit
DEFINE CCP2_REG PORTC Hpwm 2 pin port
DEFINE CCP2_BIT 1 Hpwm 2 pin bit
Men jag har ingen aning om vad det gör.
CCP med Picbasic
Detta du skriver är definitionerna på registrena.
Vad du ska göra är att sätts dessa registre till rätt värden så du uppnår den önskade funktion. För att veta vilka värden det blir läser man databladen, speciellt CCP-delen och sedan gör man koden som lägger in dessa värden.
Du får alltså läsa och förstå hur CCP fungerar först, sedan kommer resten.
Jag kan fint ge dig talen/göra programmet men jag kostar 650:-/timme + moms när jag programmerar.
Vad du ska göra är att sätts dessa registre till rätt värden så du uppnår den önskade funktion. För att veta vilka värden det blir läser man databladen, speciellt CCP-delen och sedan gör man koden som lägger in dessa värden.
Du får alltså läsa och förstå hur CCP fungerar först, sedan kommer resten.
Jag kan fint ge dig talen/göra programmet men jag kostar 650:-/timme + moms när jag programmerar.
Senast redigerad av Icecap 10 maj 2005, 07:43:22, redigerad totalt 1 gång.
Har sökt lite och hittat en som hade liknande problem:)
http://www.picbasic.co.uk/forum/archive ... t-366.html
kod:
T1CON = %00100000 ' TMR1 prescale=1:4 Timer OFF
And, use this formula:
period = period / 2
RPM = 10000
RPM = RPM * RPM ' 100,000,000
RPM = DIV32 period ' 100,000,000 / RevCount
RPM = RPM * 60 ' Per minute
RPM = DIV32 400
Also, for the lookup to the nearest 100 RPM, you might consider this:
Nearest = RPM / 100
if RPM DIG 1 > 5 then Nearest = Nearest + 1
Nearest = Nearest * 100
http://www.picbasic.co.uk/forum/archive ... t-366.html
kod:
T1CON = %00100000 ' TMR1 prescale=1:4 Timer OFF
And, use this formula:
period = period / 2
RPM = 10000
RPM = RPM * RPM ' 100,000,000
RPM = DIV32 period ' 100,000,000 / RevCount
RPM = RPM * 60 ' Per minute
RPM = DIV32 400
Also, for the lookup to the nearest 100 RPM, you might consider this:
Nearest = RPM / 100
if RPM DIG 1 > 5 then Nearest = Nearest + 1
Nearest = Nearest * 100