@Skimask ,
yess its work ,thank your interesting .
Its not bad ,so close result with duty cycle meter.
I can use it on my car .
Some problem I have ,
1-why I see on the lcd "35" %100 duty cycle ?
2-People use RB0 input "schmit trigger" on duty cycle meter .
How can use schmit trigger input my circuit ?
'DEVICE 16F84A
DEFINE OSC 10
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 3
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 2
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
PLO VAR WORD 'PULS_LOW
PHI VAR WORD 'PULS_HIGH
PWIDTH VAR WORD 'ADD TWO RESULT (PULS_LOW+PULS_HIGH)
DTYCYC VAR WORD 'DIVIDE PULS_HIGH
PULSIN PORTA.0 , 0 , PLO : PULSIN PORTA.0 , 1 , PHI
cutdown2:
PWIDTH = PLO + PHI
if PWIDTH > 655 then 'divide by 2 until 'TEST4' result 3 lines below won't overflow
PLO = PLO / 2 : PHI = PHI / 2 : goto cutdown2
endif
DTYCYC = ( PHI * 100 ) / PWIDTH
'LCDOUT $FE , $80 , "PLO:" , DEC5 PLO 'puls_low
'LCDOUT $FE , $88 , "PHI:" , DEC5 PHI 'puls_high
'LCDOUT $FE , $C0 , "PW:" , DEC5 PWIDTH
'LCDOUT $FE , $C8 , "DC:" , DEC2 DTYCYC
LCDOUT $FE , $82 , "DutyCycle:" , DEC2 DTYCYC
![]()
Bookmarks