The PIC is dedicated to doing this alone, nothing else.
As far as resolution, the more the better of course. I just don't know how much I can bullshit the controller until I hook it up.
I am playing around with the PULSIN for the incoming PWM and HPWM for the outgoing signal. It seems to be working pretty good.
Here is the code.
Code:
Include "modedefs.bas" ' Mode definitions for Serout
Yellow Var PortC.5
Red Var PortC.4
Green Var PortC.3
Rate var PortC.1
LCD var PortB.5
VoltIn var word
Flasher var word
Speed var word
Numerator var word
Divisor var word
Total var word
Prefix con $FE ' needed before each command
LcdCls CON $51 ' clear LCD (use PAUSE 5 after)
CursorPS con $45 'Cursor Position
Backlight con $53 ' Backlighting 1-8
TRISC = 0000010
TRISB=000000
TRISB=111111
Option_Reg.7=0 'Pull-Ups Enabled
ANSELH=0 'PortB Digital
WPUB.0=1
WPUB.1=1
WPUB.2=1
WPUB.3=1
WPUB.4=1
INTCON.7=0
Flasher = 0
define OSC 4
'OSCCON.6=1'0 '250khz
'OSCCON.5=0 '250khz
'OSCCON.4=0'0 '250khzHZ
pause 10
SEROUT2 LCD,84, [Prefix,Backlight,8] 'LCD used for debug purpose
Serout2 LCD, 84, [Prefix,LcdCLS]
pause 10
SEROUT2 LCD,84, [Prefix,CursorPS,0, "RPM Simulator "]
pause 1000
Serout2 LCD, 84, [Prefix,LcdCLS]
high green
high red
high yellow
Repeat
GOSUB ON_Off
Flasher = Flasher + 1
UNTIL Flasher = 5
Flasher = 0
'245 to 24000 for frequency out in the HPWM 23755 range
'15.3HZ to 1.52kHZ at the 1/16 flip flop output
Start:
gosub Get_Pulse
Gosub Math
Goto Start
Get_Pulse:
Pulsin Rate,0,Numerator
pulsin Rate,1,Divisor
Total=Numerator+Divisor
If Total=0 then 'LED Green when PWM present, red when no PWM
HIgh Yellow
Low Red
High Green
else
HIgh Yellow
High Red
Low Green
endif
return
Math:
SEROUT2 LCD,84, [Prefix,CursorPS,0, dec5 Numerator," ",dec5 Divisor, " ", dec5 Total]
Divisor=Divisor/10
Speed = (240*Divisor)
SEROUT2 LCD,84, [Prefix,CursorPS,64, dec5 Speed]
HPWM 1,127,Speed
Return
'___________________________________________
'-----------Activate/Deactivate Outputs-----
On_Off:
high REd
high Green
high Yellow
PAUSE 100
high REd
low Green
high Yellow
PAUSE 100
RETURN
Bookmarks